Best Python code snippet using Testify_python
test_restorer.py
Source:test_restorer.py
1from typing import List, Tuple, Union2from pydantic import BaseModel3from pytest import mark4from pydantic_settings import TextLocation5from pydantic_settings.decoder.json import decode_document6from pydantic_settings.restorer import (7 ModelShapeRestorer,8 _build_model_flat_map,9)10from .conftest import Model1, Model4, Model5, Model611class YAModel(BaseModel):12 list: List[str]13class WithComplexTypes(BaseModel):14 list: List[str] # will be ignored because not supported15 tuple: Tuple[str]16 union: Union[str, int, bool] # path pointer end here17 models_union: Union[Model1, YAModel] # will expand nested path18 # expand first model, but still allow this point19 model_union_with_simple: Union[Model1, int]20def test_with_complex_types():21 assert {22 key: tuple(val)23 for key, val in _build_model_flat_map(24 WithComplexTypes, 't', str.casefold25 ).items()26 } == {27 't_list': (('list',), False, False),28 't_tuple': (('tuple',), False, False),29 't_union': (('union',), False, False),30 't_models_union': (('models_union',), True, True),31 't_models_union_foo': (('models_union', 'foo'), False, False),32 't_models_union_bar': (('models_union', 'bar'), False, False),33 't_models_union_list': (('models_union', 'list'), False, False),34 't_model_union_with_simple': (35 ('model_union_with_simple',),36 True,37 False,38 ),39 't_model_union_with_simple_foo': (40 ('model_union_with_simple', 'foo'),41 False,42 False,43 ),44 't_model_union_with_simple_bar': (45 ('model_union_with_simple', 'bar'),46 False,47 False,48 ),49 }50def test_flat_model():51 assert _build_model_flat_map(Model1, 'test', str.casefold) == {52 'test_foo': (('foo',), False, False),53 'test_bar': (('bar',), False, False),54 }55@mark.parametrize('model_cls', [Model4, Model5])56def test_complex_nested_models(model_cls):57 assert _build_model_flat_map(model_cls, 'test', str.casefold) == {58 'test_foo': (('foo',), True, True),59 'test_foo_bar': (('foo', 'bar'), False, False),60 'test_foo_baz': (('foo', 'baz'), False, False),61 }62@mark.parametrize(63 'model_cls, input_val, result, locations',64 [65 (66 Model1,67 {'test_foo': 'VAL1', 'test_bar': 'VAL2'},68 {'foo': 'VAL1', 'bar': 'VAL2'},69 {('foo',): ('test_foo', None), ('bar',): ('test_bar', None)},70 ),71 (72 Model4,73 {'test_foo': '{"bar": "VAL1", "baz": "VAL2"}'},74 {'foo': {'bar': 'VAL1', 'baz': 'VAL2'}},75 {76 ('foo', 'bar'): (77 'test_foo',78 TextLocation(79 line=1,80 col=9,81 end_line=1,82 end_col=15,83 pos=9,84 end_pos=14,85 ),86 ),87 ('foo', 'baz'): (88 'test_foo',89 TextLocation(90 line=1,91 col=24,92 end_line=1,93 end_col=30,94 pos=24,95 end_pos=29,96 ),97 ),98 },99 ),100 (101 Model4,102 {'test_foo_bar': 'VAL1', 'test_foo_baz': 'VAL2'},103 {'foo': {'bar': 'VAL1', 'baz': 'VAL2'}},104 {105 ('foo', 'bar'): ('test_foo_bar', None),106 ('foo', 'baz'): ('test_foo_baz', None),107 },108 ),109 (110 Model4,111 {'test_foo_bar': 'VAL1'},112 {'foo': {'bar': 'VAL1'}},113 {('foo', 'bar'): ('test_foo_bar', None)},114 ),115 (116 Model6,117 {'test_baz_bam_foo': 'VAL1', 'test_baz_bam_bar': 'VAL2'},118 {'baz': {'bam': {'foo': 'VAL1', 'bar': 'VAL2'}}},119 {120 ('baz', 'bam', 'foo'): ('test_baz_bam_foo', None),121 ('baz', 'bam', 'bar'): ('test_baz_bam_bar', None),122 },123 ),124 (125 Model6,126 {'test_baz_bam': '{"foo": "VAL1", "bar": "VAL2"}'},127 {'baz': {'bam': {'foo': 'VAL1', 'bar': 'VAL2'}}},128 {129 ('baz', 'bam', 'foo'): (130 'test_baz_bam',131 TextLocation(132 line=1,133 col=9,134 end_line=1,135 end_col=15,136 pos=9,137 end_pos=14,138 ),139 ),140 ('baz', 'bam', 'bar'): (141 'test_baz_bam',142 TextLocation(143 line=1,144 col=24,145 end_line=1,146 end_col=30,147 pos=24,148 end_pos=29,149 ),150 ),151 },152 ),153 (154 Model6,155 {'test_baz': '{"bam": {"foo": "VAL1", "bar": "VAL2"}}'},156 {'baz': {'bam': {'foo': 'VAL1', 'bar': 'VAL2'}}},157 {158 ('baz', 'bam', 'foo'): (159 'test_baz',160 TextLocation(161 line=1,162 col=17,163 end_line=1,164 end_col=23,165 pos=17,166 end_pos=22,167 ),168 )169 },170 ),171 (172 Model6,173 {174 'test_baz_bam_foo': 'VAL1',175 'test_baz_bam_bar': 'VAL2',176 'test_baf_foo': 'VAL3',177 },178 {179 'baz': {'bam': {'foo': 'VAL1', 'bar': 'VAL2'}},180 'baf': {'foo': 'VAL3'},181 },182 {183 ('baz', 'bam', 'foo'): ('test_baz_bam_foo', None),184 ('baz', 'bam', 'bar'): ('test_baz_bam_bar', None),185 ('baf', 'foo'): ('test_baf_foo', None),186 },187 ),188 ],189)190def test_restore_model(model_cls, input_val, result, locations):191 values, errs = ModelShapeRestorer(192 model_cls, 'TEST', False, decode_document193 ).restore(input_val)194 assert values, errs == (result, [])...
test_runner.py
Source:test_runner.py
1#!/usr/bin/env python2# -*- coding: utf-8 -*-3# Copyright (c) 2012-2021 SoftBank Robotics. All rights reserved.4# Use of this source code is governed by a BSD-style license (see the COPYING file).5""" Test Runner """6from __future__ import absolute_import7from __future__ import unicode_literals8from __future__ import print_function9import pytest10import qitest.runner11import qitest.project12class DummyTestRunner(qitest.runner.TestSuiteRunner):13 """ DummyTestRunner """14 def launcher(self):15 """ Launcher """16 pass17def test_match_patterns(tmpdir):18 """ Test Match Patterns """19 test_foo = {"name": "test_foo"}20 test_bar = {"name": "test_bar"}21 test_foo_bar = {"name": "test_foo_bar"}22 test_spam = {"name": "test_spam"}23 nightly = {"name": "nightly", "nightly": True}24 perf = {"name": "perf", "perf": True}25 tests = [test_foo, test_bar, test_foo_bar, test_spam, nightly, perf]26 qitest_json = tmpdir.ensure("qitest.json", file=True)27 qitest.conf.write_tests(tests, qitest_json.strpath)28 test_project = qitest.project.TestProject(qitest_json.strpath)29 test_runner = DummyTestRunner(test_project)30 test_runner.patterns = ["foo"]31 assert test_runner.tests == [test_foo, test_foo_bar]32 test_runner.patterns = ["foo", "bar"]33 assert test_runner.tests == [test_foo, test_bar, test_foo_bar]34 with pytest.raises(Exception):35 test_runner.patterns = "foo("36 test_runner.patterns = list()37 assert test_runner.tests == [test_foo, test_bar, test_foo_bar, test_spam]38 test_runner.nightly = True39 test_runner.perf = False40 assert test_runner.tests == [41 test_foo, test_bar, test_foo_bar, test_spam, nightly]42 test_runner.perf = True43 test_runner.nightly = False44 assert test_runner.tests == [perf]45def test_exclude(tmpdir):46 """ Test Exclude """47 test_foo = {"name": "test_foo"}48 test_bar = {"name": "test_bar"}49 test_foo_bar = {"name": "test_foo_bar"}50 tests = [test_foo, test_bar, test_foo_bar]51 qitest_json = tmpdir.ensure("qitest.json", file=True)52 qitest.conf.write_tests(tests, qitest_json.strpath)53 test_project = qitest.project.TestProject(qitest_json.strpath)54 test_runner = DummyTestRunner(test_project)55 test_runner.excludes = ["foo"]...
test_addpath.py
Source:test_addpath.py
1import fs2import pytest3import sys4from .setup import *5def test_addpath():6 TEST_MODULE = 'test_foo_bar.py'7 fs.touch(fs.join(TEST_DIR, TEST_MODULE))8 with pytest.raises(ImportError):9 import test_foo_bar10 fs.addpath(TEST_DIR)11 import test_foo_bar12 sys.path.remove(TEST_DIR)13 del sys.modules['test_foo_bar']14def test_addpath_not_existing_path():15 WRONG_TEST_DIR = 'foobartest'16 with pytest.raises(ValueError):...
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!!