Best Python code snippet using dbt-osmosis_python
stubber.py
Source: stubber.py
1#!/usr/bin/python2# -*- coding: utf-8 -*-3#4# Copyright (c) 2017 F5 Networks Inc.5# GNU General Public License v3.0 (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)6from __future__ import absolute_import, division, print_function7__metaclass__ = type8import os9import shutil10from .common import BASE_DIR11try:12 from jinja2 import Environment13 from jinja2 import FileSystemLoader14 HAS_JINJA = True15except ImportError:16 HAS_JINJA = False17if HAS_JINJA:18 JINJA_ENV = Environment(19 loader=FileSystemLoader(BASE_DIR + '/devtools/stubs')20 )21def module_file_present(module):22 module_file = '{0}/library/modules/{1}.py'.format(BASE_DIR, module)23 if os.path.exists(module_file):24 print('Module file "{0}" exists'.format(module_file))25 return True26 return False27def module_file_absent(module):28 result = module_file_present(module)29 return not result30def stub_roles_dirs(module):31 # Create role containing all of your future functional tests32 for d in ['defaults', 'tasks']:33 directory = '{0}/test/integration/targets/{1}/{2}'.format(BASE_DIR, module, d)34 if not os.path.exists(directory):35 os.makedirs(directory)36def stub_roles_yaml_files(module):37 # Create default vars to contain any playbook variables38 for dir in ['defaults', 'tasks']:39 defaults_file = '{0}/test/integration/targets/{1}/{2}/main.yaml'.format(40 BASE_DIR, module, dir41 )42 touch(defaults_file)43 for f in ['setup.yaml', 'teardown.yaml']:44 defaults_file = '{0}/test/integration/targets/{1}/tasks/{2}'.format(BASE_DIR, module, f)45 touch(defaults_file)46 main_tests = '{0}/test/integration/targets/{1}/tasks/main.yaml'.format(BASE_DIR, module)47 template = JINJA_ENV.get_template('test_integration_targets_main.yaml')48 content = template.render()49 with open(main_tests, 'w') as fh:50 fh.write(content)51def stub_playbook_file(module):52 # Stub out the test playbook53 playbook_file = '{0}/test/integration/{1}.yaml'.format(BASE_DIR, module)54 template = JINJA_ENV.get_template('playbooks_module.yaml')55 content = template.render(module=module)56 fh = open(playbook_file, 'w')57 fh.write(content)58 fh.close()59def stub_library_file(module, extension):60 # Create your new module python file61 library_file = '{0}/library/modules/{1}{2}'.format(BASE_DIR, module, extension)62 template = JINJA_ENV.get_template('library_module.py')63 content = template.render(module=module)64 fh = open(library_file, 'w')65 fh.write(content)66 fh.close()67def stub_module_documentation(module):68 # Create the documentation link for your module69 documentation_file = '{0}/docs/modules/{1}.rst'.format(BASE_DIR, module)70 touch(documentation_file)71def touch(name, times=None):72 with open(name, 'a'):73 os.utime(name, times)74def stub_unit_test_file(module, extension):75 test_dir_path = '{0}/test/unit/'.format(BASE_DIR)76 if not os.path.exists(test_dir_path):77 os.makedirs(test_dir_path)78 test_file = '{0}/test/unit/test_{1}{2}'.format(79 BASE_DIR, module, extension80 )81 template = JINJA_ENV.get_template('tests_unit_module.py')82 content = template.render(module=module)83 fh = open(test_file, 'w')84 fh.write(content)85 fh.close()86def unstub_roles_dirs(module):87 for dir in ['defaults', 'tasks']:88 directory = '{0}/test/integration/targets/{1}/{2}'.format(BASE_DIR, module, dir)89 if os.path.exists(directory):90 shutil.rmtree(directory)91def unstub_playbook_file(module):92 playbook_file = '{0}/test/integration/{1}.yaml'.format(BASE_DIR, module)93 if os.path.exists(playbook_file):94 os.remove(playbook_file)95def unstub_library_file(module, extension):96 library_file = '{0}/library/modules/{1}{2}'.format(BASE_DIR, module, extension)97 if os.path.exists(library_file):98 os.remove(library_file)99def unstub_module_documentation(module):100 documentation_file = '{0}/docs/modules/{1}.rst'.format(BASE_DIR, module)101 if os.path.exists(documentation_file):102 os.remove(documentation_file)103def unstub_unit_test_file(module, extension):104 test_dir_path = '{0}/test/unit/'.format(BASE_DIR)105 if not os.path.exists(test_dir_path):106 os.makedirs(test_dir_path)107 test_file = '{0}/test/unit/test_{1}{2}'.format(108 BASE_DIR, module, extension109 )110 if os.path.exists(test_file):...
collection.py
Source: collection.py
1#!/usr/bin/python2# -*- coding: utf-8 -*-3#4# Copyright (c) 2017 F5 Networks Inc.5# GNU General Public License v3.0 (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)6from __future__ import absolute_import, division, print_function7__metaclass__ = type8import os9import semver10import sys11from .lib.common import BASE_DIR12from invoke import task13from tasks.module import upstream as upstream_module14from tasks.module_utils import upstream as upstream_utils15from tasks.module_doc_fragments import upstream as upstream_doc16from tasks.plugins import upstream as upstream_plugins17try:18 from jinja2 import Environment19 from jinja2 import FileSystemLoader20 HAS_JINJA = True21except ImportError:22 HAS_JINJA = False23if HAS_JINJA:24 JINJA_ENV = Environment(25 loader=FileSystemLoader(BASE_DIR + '/devtools/stubs')26 )27BUILD_DIR = '{0}/local/ansible_collections/_builds'.format(BASE_DIR)28HELP = dict(29 filename="Name of the tarball file to be pubished found in _builds directory.",30 api_key="The api key from Ansible Galaxy to be used to upload",31 qa="Indicates if the target Galaxy environment is a Galaxy test site."32)33def update_galaxy_file(version, collection):34 # updates galaxy.yml file for collection update35 galaxy_file = '{0}/local/ansible_collections/f5networks/{1}/galaxy.yml'.format(BASE_DIR, collection)36 template = JINJA_ENV.get_template('collection_galaxy.yml')37 content = template.render(version=version, collection=collection)38 fh = open(galaxy_file, 'w')39 fh.write(content)40 fh.close()41def validate_version(version):42 try:43 semver.parse_version_info(version)44 except ValueError as ex:45 print(str(ex))46 sys.exit(1)47@task(optional=['collection', 'skiptest'], help=dict(48 version="Version of the collection to build, the version must follow in SemVer format.",49 collection="The collection name to which the modules are upstreamed, DEFAULT: 'f5_modules'.",50 update="Allows updating galaxy file when requested."51))52def build(c, version, collection='f5_modules', update=True):53 """Creates collection builds in the ansible_collections/_build directory."""54 validate_version(version)55 if update:56 update_galaxy_file(version, collection)57 if not os.path.exists(BUILD_DIR):58 os.makedirs(BUILD_DIR)59 coll_dest = '{0}/local/ansible_collections/f5networks/{1}'.format(BASE_DIR, collection)60 cmd = 'ansible-galaxy collection build {0} -f --output-path {1}'.format(coll_dest, BUILD_DIR)61 c.run(cmd)62@task(optional=['qa'], help=HELP)63def publish(c, filename, api_key, qa=None):64 """Publish collection on Galaxy."""65 file = '{0}/{1}'.format(BUILD_DIR, os.path.basename(filename))66 if not os.path.exists(file):67 print("Requested file {0} not found.".format(file))68 sys.exit(1)69 if qa:70 cmd = 'ansible-galaxy collection publish {0} --api-key={1} -s https://galaxy-qa.ansible.com/ '.format(file, api_key)71 else:72 cmd = 'ansible-galaxy collection publish {0} --api-key={1}'.format(file, api_key)73 c.run(cmd)74@task75def update_galaxy(c, version, collection='f5_modules'):76 """Updates galaxy.yml file"""77 validate_version(version)78 update_galaxy_file(version, collection)79 print("File galaxy.yml updated.")80@task81def make_local(c):82 """Creates local collection structure, used in local testing and debugging."""83 upstream_module(c, ['all'])84 upstream_utils(c)85 upstream_doc(c)86 upstream_plugins(c)...
Check out the latest blogs from LambdaTest on this topic:
Building a website is all about keeping the user experience in mind. Ultimately, it’s about providing visitors with a mind-blowing experience so they’ll keep coming back. One way to ensure visitors have a great time on your site is to add some eye-catching text or image animations.
When most firms employed a waterfall development model, it was widely joked about in the industry that Google kept its products in beta forever. Google has been a pioneer in making the case for in-production testing. Traditionally, before a build could go live, a tester was responsible for testing all scenarios, both defined and extempore, in a testing environment. However, this concept is evolving on multiple fronts today. For example, the tester is no longer testing alone. Developers, designers, build engineers, other stakeholders, and end users, both inside and outside the product team, are testing the product and providing feedback.
Entering the world of testers, one question started to formulate in my mind: “what is the reason that bugs happen?”.
In 2007, Steve Jobs launched the first iPhone, which revolutionized the world. But because of that, many businesses dealt with the problem of changing the layout of websites from desktop to mobile by delivering completely different mobile-compatible websites under the subdomain of ‘m’ (e.g., https://m.facebook.com). And we were all trying to figure out how to work in this new world of contending with mobile and desktop screen sizes.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!