From 70e98bb8b9cf7620a1d72551c6ba8736420ebf17 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Sat, 6 Apr 2024 08:37:01 -0400 Subject: [PATCH] Conformance tests: Fix automated scoring in classes_override.py --- .../results/mypy/classes_override.toml | 9 +++----- .../results/pyre/classes_override.toml | 21 ++++++++----------- .../results/pyright/classes_override.toml | 7 ++----- .../results/pytype/classes_override.toml | 9 ++++---- conformance/tests/classes_override.py | 8 +++---- 5 files changed, 22 insertions(+), 32 deletions(-) diff --git a/conformance/results/mypy/classes_override.toml b/conformance/results/mypy/classes_override.toml index a1e8ce31..bb72325d 100644 --- a/conformance/results/mypy/classes_override.toml +++ b/conformance/results/mypy/classes_override.toml @@ -7,13 +7,10 @@ classes_override.py:53: error: Method "method3" is marked as an override, but no classes_override.py:56: error: Method "method4" is marked as an override, but no base method was found with this name [misc] classes_override.py:79: error: Method "static_method1" is marked as an override, but no base method was found with this name [misc] classes_override.py:84: error: Method "class_method1" is marked as an override, but no base method was found with this name [misc] -classes_override.py:91: error: Method "property1" is marked as an override, but no base method was found with this name [misc] -classes_override.py:103: error: Method "method1" is marked as an override, but no base method was found with this name [misc] +classes_override.py:89: error: Method "property1" is marked as an override, but no base method was found with this name [misc] +classes_override.py:101: error: Method "method1" is marked as an override, but no base method was found with this name [misc] """ conformance_automated = "Fail" errors_diff = """ -Line 86: Expected 1 errors -Line 56: Unexpected errors ['classes_override.py:56: error: Method "method4" is marked as an override, but no base method was found with this name [misc]'] -Line 84: Unexpected errors ['classes_override.py:84: error: Method "class_method1" is marked as an override, but no base method was found with this name [misc]'] -Line 103: Unexpected errors ['classes_override.py:103: error: Method "method1" is marked as an override, but no base method was found with this name [misc]'] +Line 101: Unexpected errors ['classes_override.py:101: error: Method "method1" is marked as an override, but no base method was found with this name [misc]'] """ diff --git a/conformance/results/pyre/classes_override.toml b/conformance/results/pyre/classes_override.toml index 2b8bb626..484f0bda 100644 --- a/conformance/results/pyre/classes_override.toml +++ b/conformance/results/pyre/classes_override.toml @@ -14,25 +14,22 @@ classes_override.py:78:5 Undefined attribute [16]: Module `typing` has no attrib classes_override.py:79:4 Invalid override [40]: `classes_override.ChildA.static_method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`. classes_override.py:83:5 Undefined attribute [16]: Module `typing` has no attribute `override`. classes_override.py:84:4 Invalid override [40]: `classes_override.ChildA.class_method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`. -classes_override.py:90:5 Undefined attribute [16]: Module `typing` has no attribute `override`. -classes_override.py:91:4 Invalid override [40]: `classes_override.ChildA.property1` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`. -classes_override.py:97:14 Invalid inheritance [39]: `typing.Any` is not a valid parent class. -classes_override.py:102:5 Undefined attribute [16]: Module `typing` has no attribute `override`. -classes_override.py:103:4 Invalid override [40]: `classes_override.ChildB.method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildB`. +classes_override.py:88:5 Undefined attribute [16]: Module `typing` has no attribute `override`. +classes_override.py:89:4 Invalid override [40]: `classes_override.ChildA.property1` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`. +classes_override.py:95:14 Invalid inheritance [39]: `typing.Any` is not a valid parent class. +classes_override.py:100:5 Undefined attribute [16]: Module `typing` has no attribute `override`. +classes_override.py:101:4 Invalid override [40]: `classes_override.ChildB.method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildB`. """ conformance_automated = "Fail" errors_diff = """ -Line 86: Expected 1 errors Line 7: Unexpected errors ['classes_override.py:7:0 Undefined import [21]: Could not find a name `override` defined in module `typing`.'] Line 37: Unexpected errors ['classes_override.py:37:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] Line 52: Unexpected errors ['classes_override.py:52:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] Line 64: Unexpected errors ['classes_override.py:64:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] -Line 65: Unexpected errors ['classes_override.py:65:4 Incompatible overload [43]: This definition does not have the same decorators as the preceding overload(s).', 'classes_override.py:65:4 Invalid override [40]: `classes_override.ChildA.method4` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`.'] Line 78: Unexpected errors ['classes_override.py:78:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] Line 83: Unexpected errors ['classes_override.py:83:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] -Line 84: Unexpected errors ['classes_override.py:84:4 Invalid override [40]: `classes_override.ChildA.class_method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildA`.'] -Line 90: Unexpected errors ['classes_override.py:90:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] -Line 97: Unexpected errors ['classes_override.py:97:14 Invalid inheritance [39]: `typing.Any` is not a valid parent class.'] -Line 102: Unexpected errors ['classes_override.py:102:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] -Line 103: Unexpected errors ['classes_override.py:103:4 Invalid override [40]: `classes_override.ChildB.method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildB`.'] +Line 88: Unexpected errors ['classes_override.py:88:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] +Line 95: Unexpected errors ['classes_override.py:95:14 Invalid inheritance [39]: `typing.Any` is not a valid parent class.'] +Line 100: Unexpected errors ['classes_override.py:100:5 Undefined attribute [16]: Module `typing` has no attribute `override`.'] +Line 101: Unexpected errors ['classes_override.py:101:4 Invalid override [40]: `classes_override.ChildB.method1` is decorated with @override, but no method of the same name exists in superclasses of `ChildB`.'] """ diff --git a/conformance/results/pyright/classes_override.toml b/conformance/results/pyright/classes_override.toml index c04b7b3f..d27bd43d 100644 --- a/conformance/results/pyright/classes_override.toml +++ b/conformance/results/pyright/classes_override.toml @@ -4,11 +4,8 @@ classes_override.py:53:9 - error: Method "method3" is marked as override, but no classes_override.py:65:9 - error: Method "method4" is marked as override, but no base method of same name is present (reportGeneralTypeIssues) classes_override.py:79:9 - error: Method "static_method1" is marked as override, but no base method of same name is present (reportGeneralTypeIssues) classes_override.py:84:9 - error: Method "class_method1" is marked as override, but no base method of same name is present (reportGeneralTypeIssues) -classes_override.py:91:9 - error: Method "property1" is marked as override, but no base method of same name is present (reportGeneralTypeIssues) +classes_override.py:89:9 - error: Method "property1" is marked as override, but no base method of same name is present (reportGeneralTypeIssues) """ -conformance_automated = "Fail" +conformance_automated = "Pass" errors_diff = """ -Line 86: Expected 1 errors -Line 65: Unexpected errors ['classes_override.py:65:9 - error: Method "method4" is marked as override, but no base method of same name is present (reportGeneralTypeIssues)'] -Line 84: Unexpected errors ['classes_override.py:84:9 - error: Method "class_method1" is marked as override, but no base method of same name is present (reportGeneralTypeIssues)'] """ diff --git a/conformance/results/pytype/classes_override.toml b/conformance/results/pytype/classes_override.toml index e5a028e9..8395e920 100644 --- a/conformance/results/pytype/classes_override.toml +++ b/conformance/results/pytype/classes_override.toml @@ -9,17 +9,18 @@ File "classes_override.py", line 50, in method2: bad return type [bad-return-typ File "classes_override.py", line 53, in ChildA: Attribute 'method3' not found on any parent class [override-error] File "classes_override.py", line 57, in ChildA: Attribute 'method4' not found on any parent class [override-error] File "classes_override.py", line 66, in method4: bad return type [bad-return-type] -File "classes_override.py", line 103, in ChildB: Attribute 'method1' not found on any parent class [override-error] +File "classes_override.py", line 101, in ChildB: Attribute 'method1' not found on any parent class [override-error] """ conformance_automated = "Fail" errors_diff = """ Line 79: Expected 1 errors -Line 86: Expected 1 errors -Line 91: Expected 1 errors +Line 84: Expected 1 errors +Line 89: Expected 1 errors +Lines 56, 65: Expected error (tag 'method4') Line 7: Unexpected errors ['File "classes_override.py", line 7, in : typing.override not supported yet [not-supported-yet]'] Line 30: Unexpected errors ['File "classes_override.py", line 30, in method2: bad return type [bad-return-type]'] Line 50: Unexpected errors ['File "classes_override.py", line 50, in method2: bad return type [bad-return-type]'] Line 57: Unexpected errors ['File "classes_override.py", line 57, in ChildA: Attribute \\'method4\\' not found on any parent class [override-error]'] Line 66: Unexpected errors ['File "classes_override.py", line 66, in method4: bad return type [bad-return-type]'] -Line 103: Unexpected errors ['File "classes_override.py", line 103, in ChildB: Attribute \\'method1\\' not found on any parent class [override-error]'] +Line 101: Unexpected errors ['File "classes_override.py", line 101, in ChildB: Attribute \\'method1\\' not found on any parent class [override-error]'] """ diff --git a/conformance/tests/classes_override.py b/conformance/tests/classes_override.py index 85560bd1..8565ad73 100644 --- a/conformance/tests/classes_override.py +++ b/conformance/tests/classes_override.py @@ -53,7 +53,7 @@ def method2(self, x: int | str) -> int | str: # OK def method3(self) -> int: # E: no matching signature in ancestor return 1 - @overload + @overload # E[method4] def method4(self, x: int) -> int: ... @@ -62,7 +62,7 @@ def method4(self, x: str) -> str: ... @override - def method4(self, x: int | str) -> int | str: + def method4(self, x: int | str) -> int | str: # E[method4]: no matching signature in ancestor return 0 @override @@ -81,9 +81,7 @@ def static_method1() -> int: # E: no matching signature in ancestor @classmethod @override - def class_method1( - cls, - ) -> int: # E: no matching signature in ancestor + def class_method1(cls) -> int: # E: no matching signature in ancestor return 1 @property