from sys import version_info from pyflakes.test.harness import TestCase, skipIf @skipIf(version_info < (3, 10), "Python >= 3.10 only") class TestMatch(TestCase): def test_match_bindings(self): self.flakes(''' def f(): x = 1 match x: case 1 as y: print(f'matched as {y}') ''') self.flakes(''' def f(): x = [1, 2, 3] match x: case [1, y, 3]: print(f'matched {y}') ''') self.flakes(''' def f(): x = {'foo': 1} match x: case {'foo': y}: print(f'matched {y}') ''') def test_match_pattern_matched_class(self): self.flakes(''' from a import B match 1: case B(x=1) as y: print(f'matched {y}') ''') self.flakes(''' from a import B match 1: case B(a, x=z) as y: print(f'matched {y} {a} {z}') ''') def test_match_placeholder(self): self.flakes(''' def f(): match 1: case _: print('catchall!') ''') def test_match_singleton(self): self.flakes(''' match 1: case True: print('true') ''') def test_match_or_pattern(self): self.flakes(''' match 1: case 1 | 2: print('one or two') ''') def test_match_star(self): self.flakes(''' x = [1, 2, 3] match x: case [1, *y]: print(f'captured: {y}') ''') def test_match_double_star(self): self.flakes(''' x = {'foo': 'bar', 'baz': 'womp'} match x: case {'foo': k1, **rest}: print(f'{k1=} {rest=}') ''')
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 0 B | 0644 |
|
harness.py | File | 1004 B | 0644 |
|
test_api.py | File | 26.27 KB | 0644 |
|
test_builtin.py | File | 582 B | 0644 |
|
test_checker.py | File | 5.78 KB | 0644 |
|
test_code_segment.py | File | 4.39 KB | 0644 |
|
test_dict.py | File | 5.15 KB | 0644 |
|
test_doctests.py | File | 12.55 KB | 0644 |
|
test_imports.py | File | 32.91 KB | 0644 |
|
test_is_literal.py | File | 4.47 KB | 0644 |
|
test_match.py | File | 2.05 KB | 0644 |
|
test_other.py | File | 50.48 KB | 0644 |
|
test_type_annotations.py | File | 19.83 KB | 0644 |
|
test_undefined_names.py | File | 23.01 KB | 0644 |
|