diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-08-20 20:39:07 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-08-20 20:57:46 +0200 |
commit | a3464cb741dbf3481d550f3784295710c4f1fd94 (patch) | |
tree | c7fdcfc3923dc5381aa6ae7f65f4b9bdbf370413 | |
parent | 7a9bfc4b2fd5be0b109587fa7262f3f8b4ac277c (diff) | |
download | pylint-git-a3464cb741dbf3481d550f3784295710c4f1fd94.tar.gz |
Add a test for false positive no-member in subclassed dataclasses
Closes #3754
-rw-r--r-- | tests/functional/n/no/no_member_subclassed_dataclasses.py | 40 | ||||
-rw-r--r-- | tests/functional/n/no/no_member_subclassed_dataclasses.rc | 10 |
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/functional/n/no/no_member_subclassed_dataclasses.py b/tests/functional/n/no/no_member_subclassed_dataclasses.py new file mode 100644 index 000000000..918abc5db --- /dev/null +++ b/tests/functional/n/no/no_member_subclassed_dataclasses.py @@ -0,0 +1,40 @@ +from abc import ABCMeta, abstractmethod +import dataclasses as dc +from typing import Any, Dict + +@dc.dataclass(frozen=True) +class DeploymentState(metaclass=ABCMeta): + type: str + + @abstractmethod + def to_dict(self) -> Dict: + """ + Serializes given DeploymentState instance to Dict. + :return: + """ + +@dc.dataclass(frozen=True) +class DeploymentStateEcs(DeploymentState): + blue: Any + green: Any + candidate: Any + + def to_dict(self) -> Dict: + return { + 'type': self.type, + 'blue': dc.asdict(self.blue), + 'green': dc.asdict(self.green), + 'candidate': self.candidate.value, + } + +@dc.dataclass(frozen=True) +class DeploymentStateLambda(DeploymentState): + current: Any + candidate: Any + + def to_dict(self) -> Dict: + return { + 'type': self.type, + 'current': dc.asdict(self.current), + 'candidate': dc.asdict(self.candidate) if self.candidate else None, + } diff --git a/tests/functional/n/no/no_member_subclassed_dataclasses.rc b/tests/functional/n/no/no_member_subclassed_dataclasses.rc new file mode 100644 index 000000000..d115e3986 --- /dev/null +++ b/tests/functional/n/no/no_member_subclassed_dataclasses.rc @@ -0,0 +1,10 @@ +[testoptions] +min_pyver=3.7 + +[MESSAGES CONTROL] +disable=fixme, + logging-too-many-args, + logging-fstring-interpolation, + missing-docstring, + no-else-return, + too-few-public-methods, |