Best Python code snippet using playwright-python
shade.py
Source:shade.py
...89 """90 geometry = Face3D(tuple(Point3D(*v) for v in vertices))91 return cls(identifier, geometry, is_detached)92 @property93 def is_detached(self):94 """Get or set a boolean for whether this object is detached from other geometry.95 This will automatically be set to False if the shade is assigned to96 parent objects.97 """98 return self._is_detached99 @is_detached.setter100 def is_detached(self, value):101 try:102 self._is_detached = bool(value)103 if self._is_detached:104 assert not self.has_parent, 'Shade cannot be detached when it has ' \105 'a parent Room, Face, Aperture or Door.'106 except TypeError:107 raise TypeError(108 'Expected boolean for Shade.is_detached. Got {}.'.format(value))109 @property110 def parent(self):111 """Get the parent object if assigned. None if not assigned.112 The parent object can be either a Room, Face, Aperture or Door.113 """114 return self._parent...
test_component.py
Source:test_component.py
1from __future__ import annotations2import json3import pytest4import yaml5from collections.abc import Iterable6from pathlib import Path as P7from git import Repo8from textwrap import dedent9from commodore.component import (10 Component,11 component_dir,12 component_parameters_key,13)14from commodore.gitrepo import RefError15from commodore.inventory import Inventory16def setup_directory(tmp_path: P):17 inv = Inventory(work_dir=tmp_path)18 inv.ensure_dirs()19 jsonnetfile = tmp_path / "jsonnetfile.json"20 with open(jsonnetfile, "w") as jf:21 json.dump({"version": 1, "dependencies": [], "legacyImports": True}, jf)22def _init_repo(tmp_path: P, cn: str, url: str):23 setup_directory(tmp_path)24 cr = Repo.init(component_dir(cn))25 cr.create_remote("origin", url)26REPO_URL = "https://github.com/projectsyn/component-argocd.git"27def _setup_component(28 tmp_path: P,29 version="master",30 repo_url=REPO_URL,31 name="argocd",32):33 return Component(34 name,35 repo_url=repo_url,36 directory=tmp_path / name,37 version=version,38 )39def test_component_checkout(tmp_path):40 c = _setup_component(tmp_path)41 c.checkout()42 assert c.version == "master"43 assert c.repo.repo.head.ref.name == "master"44 pull_remote = c.repo.remote45 push_remote = c.repo.repo.git.remote("get-url", "--push", "origin")46 assert pull_remote == REPO_URL47 assert push_remote.startswith("ssh://git@")48 assert push_remote == REPO_URL.replace("https://", "ssh://git@")49def test_component_checkout_branch(tmp_path):50 branch = "component-defs-in-applications"51 c = _setup_component(tmp_path, version=branch)52 c.checkout()53 assert c.version == branch54 repo = c.repo.repo55 assert repo.head.ref.name == branch56 for rb in repo.remote().refs:57 if rb.name.endswith(branch):58 remote_branch_commit = rb.commit59 break60 else:61 raise ValueError(f"No remote branch for {branch}")62 assert not repo.head.is_detached63 assert repo.head.ref.name == branch64 assert repo.head.commit == remote_branch_commit65def test_component_checkout_sha1version(tmp_path: P):66 commit = "696b4b4cb9a86ebc845daa314a0a98957f89e99b"67 c = _setup_component(tmp_path, version=commit)68 c.checkout()69 assert c.repo.repo.head.is_detached70 assert c.repo.repo.head.commit.hexsha == commit71def test_component_checkout_tag(tmp_path: P):72 c = _setup_component(73 tmp_path,74 version="v1.0.0",75 repo_url="https://github.com/projectsyn/component-backup-k8up.git",76 name="backup-k8up",77 )78 c.checkout()79 assert c.repo.repo.head.is_detached80 assert c.repo.repo.head.commit.hexsha == c.repo.repo.tags["v1.0.0"].commit.hexsha81def test_component_checkout_nonexisting_version(tmp_path: P):82 c = _setup_component(tmp_path, version="does-not-exist")83 with pytest.raises(RefError):84 c.checkout()85def test_component_checkout_existing_repo_update_version_branch(tmp_path: P):86 c = _setup_component(tmp_path, version="master")87 c.checkout()88 assert not c.repo.repo.head.is_detached89 assert c.repo.repo.head.ref.name == "master"90 # update version91 branch = "component-defs-in-applications"92 c.version = branch93 c.checkout()94 assert not c.repo.repo.head.is_detached95 assert c.repo.repo.head.ref.name == branch96def test_component_checkout_existing_repo_update_version_sha1version(tmp_path: P):97 c = _setup_component(tmp_path, version="master")98 c.checkout()99 assert not c.repo.repo.head.is_detached100 assert c.repo.repo.head.ref.name == "master"101 # update version102 commit = "696b4b4cb9a86ebc845daa314a0a98957f89e99b"103 c.version = commit104 c.checkout()105 assert c.repo.repo.head.is_detached106 assert c.repo.repo.head.commit.hexsha == commit107def test_component_checkout_existing_repo_update_latest_upstream(tmp_path: P):108 c = _setup_component(tmp_path, version="master")109 c.checkout()110 assert not c.repo.repo.head.is_detached111 assert c.repo.repo.head.ref.name == "master"112 master_commit = c.repo.repo.head.commit.hexsha113 c.repo.repo.git.reset("HEAD^", hard=True)114 assert not c.repo.repo.head.is_detached115 assert c.repo.repo.head.ref.name == "master"116 assert c.repo.repo.head.commit.hexsha != master_commit117 c.checkout()118 assert not c.repo.repo.head.is_detached119 assert c.repo.repo.head.ref.name == "master"120 assert not c.repo.repo.is_dirty()121@pytest.mark.parametrize(122 "mode",123 ["reinit", "update"],124)125def test_component_checkout_existing_repo_update_remote(tmp_path: P, mode: str):126 c = _setup_component(tmp_path, version="master")127 c.checkout()128 assert not c.repo.repo.head.is_detached129 assert c.repo.repo.head.ref.name == "master"130 # remember original url of remote origin131 orig_url = next(c.repo.repo.remote().urls)132 # create local upstream repo133 local = tmp_path / "upstream" / "argocd.git"134 Repo.init(local, bare=True)135 local_url = f"file://{local}"136 local_ver = "local-branch"137 # push repo to local upstream with a custom branch138 c.repo.repo.create_remote("local", local_url)139 c.repo.repo.create_head(local_ver)140 c.repo.repo.remote("local").push(local_ver)141 c.repo.repo.delete_remote("local")142 c.repo.repo.delete_head(local_ver)143 if mode == "reinit":144 # reinitialize component object on existing repo with different url/version info145 c = _setup_component(tmp_path, version=local_ver, repo_url=local_url)146 c.checkout()147 elif mode == "update":148 c.repo_url = local_url149 c.version = local_ver150 c.checkout()151 else:152 raise ValueError(f"Unknown mode {mode} for test")153 assert local_url in c.repo.repo.remote().urls154 assert orig_url not in c.repo.repo.remote().urls155 assert not c.repo.repo.head.is_detached156 assert c.repo.repo.head.ref.name == "local-branch"157def test_init_existing_component(tmp_path: P):158 cn = "test-component"159 orig_url = "git@github.com:projectsyn/commodore.git"160 setup_directory(tmp_path)161 cr = Repo.init(tmp_path)162 cr.create_remote("origin", orig_url)163 c = Component(cn, directory=tmp_path)164 for url in c.repo.repo.remote().urls:165 assert url == orig_url166def _setup_render_jsonnetfile_json(tmp_path: P) -> Component:167 Repo.init(tmp_path)168 c = Component("kube-monitoring", directory=tmp_path)169 jsonnetfile = tmp_path / "jsonnetfile.jsonnet"170 with open(jsonnetfile, "w") as jf:171 jf.write(172 dedent(173 """174 {175 version: 1,176 dependencies: [177 {178 source: {179 git: {180 remote: "https://github.com/coreos/kube-prometheus",181 subdir: "jsonnet/kube-prometheus",182 },183 },184 version: std.extVar("kube_prometheus_version"),185 },186 ],187 legacyImports: true,188 }"""189 )190 )191 c.repo.repo.index.add("*")192 c.repo.repo.index.commit("Initial commit")193 return c194def _render_jsonnetfile_json_error_string(c: Component):195 return (196 f" > [WARN] Component {c.name} repo contains both jsonnetfile.json and jsonnetfile.jsonnet, "197 + "continuing with jsonnetfile.jsonnet"198 )199def test_render_jsonnetfile_json(tmp_path: P, capsys):200 c = _setup_render_jsonnetfile_json(tmp_path)201 c.render_jsonnetfile_json(202 {"jsonnetfile_parameters": {"kube_prometheus_version": "1.18"}}203 )204 stdout, _ = capsys.readouterr()205 assert (tmp_path / "jsonnetfile.json").is_file()206 assert _render_jsonnetfile_json_error_string(c) not in stdout207 with open(tmp_path / "jsonnetfile.json") as jf:208 jsonnetfile_contents = json.load(jf)209 assert isinstance(jsonnetfile_contents, dict)210 # check expected keys are there using set comparison211 assert {"version", "dependencies", "legacyImports"} <= set(212 jsonnetfile_contents.keys()213 )214 assert jsonnetfile_contents["version"] == 1215 assert jsonnetfile_contents["legacyImports"]216 assert jsonnetfile_contents["dependencies"][0]["version"] == "1.18"217def test_render_jsonnetfile_json_warning(tmp_path: P, capsys):218 c = _setup_render_jsonnetfile_json(tmp_path)219 with open(tmp_path / "jsonnetfile.json", "w") as jf:220 jf.write("{}")221 c.repo.repo.index.add("*")222 c.repo.repo.index.commit("Add jsonnetfile.json")223 c.render_jsonnetfile_json(224 {"jsonnetfile_parameters": {"kube_prometheus_version": "1.18"}}225 )226 stdout, _ = capsys.readouterr()227 assert _render_jsonnetfile_json_error_string(c) in stdout228@pytest.mark.parametrize(229 "name,key",230 [231 ("simple", "simple"),232 ("simple-name", "simple_name"),233 ("some-other-name", "some_other_name"),234 ],235)236def test_component_parameters_key(name: str, key: str):237 assert component_parameters_key(name) == key238def _setup_libfiles(c: Component, libfiles: Iterable[str]):239 lib_dir = c.target_directory / "lib"240 if len(libfiles) > 0:241 lib_dir.mkdir(parents=True, exist_ok=True)242 for libf in libfiles:243 with open(lib_dir / libf, "w") as f:244 yaml.safe_dump({"libf": libf}, f)245@pytest.mark.parametrize(246 "libfiles",247 [248 [],249 ["foo.libsonnet"],250 ["foo.libsonnet", "bar.libsonnet"],251 ],252)253def test_component_lib_files(tmp_path: P, libfiles: Iterable[str]):254 c = _setup_component(tmp_path, name="tc1")255 _setup_libfiles(c, libfiles)256 assert sorted(c.lib_files) == sorted(tmp_path / "tc1" / "lib" / f for f in libfiles)257@pytest.mark.parametrize(258 "libfiles",259 [260 [],261 ["foo.libsonnet"],262 ["foo.libsonnet", "bar.libsonnet"],263 ],264)265def test_component_get_library(tmp_path: P, libfiles: Iterable[str]):266 c = _setup_component(tmp_path, name="tc1")267 _setup_libfiles(c, libfiles)268 if len(libfiles) == 0:269 assert c.get_library("foo.libsonnet") is None270 for f in libfiles:...
services.py
Source:services.py
1from odoo import exceptions, http2from odoo.http import Controller, request3try:4 from odoo.addons.horanet_go.tools import git_source5 from odoo.addons.horanet_go import version6 from odoo.addons.horanet_web.tools import route7except ImportError:8 from horanet_go.tools import git_source9 from horanet_go import version10 from horanet_web.tools import route11class SourceVersion(Controller):12 @http.route(['/web/version'], type='http', auth="user", methods=['GET'], website=True)13 def page_module_version(self):14 if not request.env.user.has_group('base.group_system'):15 raise exceptions.AccessDenied()16 qcontext = {}17 horanet_go_module = request.env['ir.module.module'].search([('name', '=', 'horanet_go')])18 repo = git_source.get_module_git_repository(horanet_go_module)19 if repo:20 active_branch = repo.active_branch21 remote_branch = [b for b in repo.branches if b.path == repo.active_branch.path]22 remote_tag = [b for b in repo.tags if b.path == repo.active_branch.path]23 remote_branch = remote_branch[0] if remote_branch else None24 remote_tag = remote_tag[0] if remote_tag else None25 is_detached = False26 if remote_branch:27 is_detached = remote_branch.commit == active_branch.commit28 elif remote_tag:29 is_detached = remote_tag.commit == active_branch.commit30 qcontext.update({31 'version': version.__version__,32 'repo': {33 'active_branch': active_branch.name,34 'remote_branch': remote_branch and remote_branch.name or '',35 'remote_tag': remote_tag and remote_tag.name or '',36 'is_detached': is_detached,37 'status': repo.git.status(),38 'log': repo.git.log(max_count=100),39 }40 })41 return request.render('horanet_go.display_module_version', qcontext=qcontext)42 @route.jsonRoute(['/web/version/horanet'], auth='user', csrf=True)43 def horanet_version(self, **data):44 """45 Webservice JSON de récupération d'information sur le dépôt git d'horanet_go.46 :param data:47 :return: Dictionary with various informations about git repository48 """49 if not request.env.user.has_group('base.group_system'):50 raise exceptions.AccessDenied()51 horanet_go_module = request.env['ir.module.module'].search([('name', '=', 'horanet_go')])52 horanet_version = 'null'53 repo = git_source.get_module_git_repository(horanet_go_module)54 if repo:55 active_branch = repo.active_branch56 remote_branch = [b for b in repo.branches if b.path == repo.active_branch.path]57 remote_tag = [b for b in repo.tags if b.path == repo.active_branch.path]58 remote_branch = remote_branch[0] if remote_branch else None59 remote_tag = remote_tag[0] if remote_tag else None60 git_status = repo.git.status()61 git_log = repo.git.log(max_count=4)62 is_detached = False63 if remote_branch:64 is_detached = remote_branch.commit == active_branch.commit65 return {66 'version': str(horanet_version),67 'branch': repo.active_branch.name,68 'commit': repo.active_branch.commit.summary,69 'remote_tag': remote_tag,70 'git_status': git_status,71 'git_log': git_log,72 'is_detached': is_detached,73 }74 elif horanet_go_module:75 horanet_version = horanet_go_module.installed_version76 else:77 horanet_version = 'Impossible code to reach (using route on an uninstalled module ?!)'...
check_git_checkout_not_detached.py
Source:check_git_checkout_not_detached.py
1#!/usr/bin/env python2# vim:ts=4:sts=4:sw=4:et3#4# Author: Hari Sekhon5# Date: 2016-07-25 14:57:36 +0100 (Mon, 25 Jul 2016)6#7# https://github.com/harisekhon/nagios-plugins8#9# License: see accompanying Hari Sekhon LICENSE file10#11# If you're using my code you're welcome to connect with me on LinkedIn12# and optionally send me feedback to help steer this or other code I publish13#14# https://www.linkedin.com/in/harisekhon15#16"""17Nagios Plugin to check a Git checkout working directory isn't in 'detached' state18Requires the 'git' command in the $PATH, otherwise you can set the path to the git19executable using the environment variable GIT_PYTHON_GIT_EXECUTABLE20"""21from __future__ import absolute_import22from __future__ import division23from __future__ import print_function24from __future__ import unicode_literals25import os26import sys27import traceback28import git29srcdir = os.path.abspath(os.path.dirname(__file__))30libdir = os.path.join(srcdir, 'pylib')31sys.path.append(libdir)32try:33 # pylint: disable=wrong-import-position34 from harisekhon.utils import CriticalError, validate_directory35 from harisekhon import NagiosPlugin36except ImportError as _:37 print(traceback.format_exc(), end='')38 sys.exit(4)39__author__ = 'Hari Sekhon'40__version__ = '0.1.1'41class CheckGitCheckoutDetached(NagiosPlugin):42 def __init__(self):43 # Python 2.x44 super(CheckGitCheckoutDetached, self).__init__()45 # Python 3.x46 # super().__init__()47 self.msg = 'CheckGitCheckoutDetached msg not defined'48 self.ok()49 def add_options(self):50 self.add_opt('-d', '--directory', action='store', help='Path to git checkout directory')51 def run(self):52 self.no_args()53 directory = self.get_opt('directory')54 validate_directory(directory)55 directory = os.path.abspath(directory)56 try:57 repo = git.Repo(directory)58 except git.InvalidGitRepositoryError:59 raise CriticalError("directory '{}' does not contain a valid Git repository!".format(directory))60 is_detached = repo.head.is_detached61 self.msg = "git checkout detached = '{}' for directory '{}'".format(is_detached, directory)62 if is_detached:63 self.critical()64if __name__ == '__main__':...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!