forked from pylint-dev/pylint
-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Additional tests for pylint-dev/astroid#1126
- Loading branch information
1 parent
ba459f7
commit 254824e
Showing
10 changed files
with
160 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
not-an-iterable:39:9::Non-iterable value Test2.int_prop is used in an iterating context:HIGH | ||
unsupported-assignment-operation:43:0::'Test2.int_prop' does not support item assignment:HIGH |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
""" Regression test for https://github.com/PyCQA/pylint/issues/3405. """ | ||
|
||
import dataclasses | ||
from typing import ClassVar | ||
|
||
|
||
@dataclasses.dataclass | ||
class Foo: | ||
"""ClassVar attribute should be matched against class-attribute-rgx, not attr-rgx""" | ||
# class-attribute-rgx='^y$' | ||
x: ClassVar[int] = 0 # [invalid-name] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
[MESSAGES CONTROL] | ||
enable=invalid-name | ||
|
||
[BASIC] | ||
attr-rgx=^x$ | ||
class-attribute-rgx=^y$ | ||
|
||
[testoptions] | ||
min_pyver=3.7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
invalid-name:11:4:Foo:"Class attribute name ""x"" doesn't conform to '^y$' pattern":HIGH |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
"""Test various regressions for dataclasses and no-member. | ||
""" | ||
# pylint: disable=missing-docstring, too-few-public-methods | ||
from abc import ABCMeta, abstractmethod | ||
from dataclasses import asdict, dataclass, field | ||
from typing import Any, Dict | ||
|
||
|
||
# https://github.com/PyCQA/pylint/issues/3754 | ||
@dataclass(frozen=True) | ||
class DeploymentState(metaclass=ABCMeta): | ||
type: str | ||
|
||
@abstractmethod | ||
def to_dict(self) -> Dict: | ||
""" | ||
Serializes given DeploymentState instance to Dict. | ||
:return: | ||
""" | ||
|
||
|
||
@dataclass(frozen=True) | ||
class DeploymentStateEcs(DeploymentState): | ||
blue: Any | ||
green: Any | ||
candidate: Any | ||
|
||
def to_dict(self) -> Dict: | ||
return { | ||
'type': self.type, # No error here | ||
'blue': asdict(self.blue), | ||
'green': asdict(self.green), | ||
'candidate': self.candidate.value, | ||
} | ||
|
||
|
||
@dataclass(frozen=True) | ||
class DeploymentStateLambda(DeploymentState): | ||
current: Any | ||
candidate: Any | ||
|
||
def to_dict(self) -> Dict: | ||
return { | ||
'type': self.type, # No error here | ||
'current': asdict(self.current), | ||
'candidate': asdict(self.candidate) if self.candidate else None, | ||
} | ||
|
||
|
||
# https://github.com/PyCQA/pylint/issues/2600 | ||
@dataclass | ||
class TestClass: | ||
attr1: str | ||
attr2: str | ||
dict_prop: Dict[str, str] = field(default_factory=dict) | ||
|
||
def some_func(self) -> None: | ||
for key, value in self.dict_prop.items(): # No error here | ||
print(key) | ||
print(value) | ||
|
||
|
||
class TestClass2: # not a dataclass, field inferred to a Field | ||
attr1: str | ||
attr2: str | ||
dict_prop: Dict[str, str] = field(default_factory=dict) | ||
|
||
def some_func(self) -> None: | ||
for key, value in self.dict_prop.items(): # [no-member] | ||
print(key) | ||
print(value) | ||
|
||
|
||
@dataclass | ||
class TestClass3: | ||
attr1: str | ||
attr2: str | ||
dict_prop = field(default_factory=dict) # No type annotation, not treated as field | ||
|
||
def some_func(self) -> None: | ||
for key, value in self.dict_prop.items(): # [no-member] | ||
print(key) | ||
print(value) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
[testoptions] | ||
min_pyver=3.7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
no-member:69:26:TestClass2.some_func:Instance of 'Field' has no 'items' member:INFERENCE | ||
no-member:81:26:TestClass3.some_func:Instance of 'Field' has no 'items' member:INFERENCE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
too-many-instance-attributes:3:0:Aaaa:Too many instance attributes (21/7) | ||
too-many-instance-attributes:5:0:Aaaa:Too many instance attributes (21/7):HIGH |