summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2021-08-20 20:39:07 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-08-20 20:57:46 +0200
commita3464cb741dbf3481d550f3784295710c4f1fd94 (patch)
treec7fdcfc3923dc5381aa6ae7f65f4b9bdbf370413
parent7a9bfc4b2fd5be0b109587fa7262f3f8b4ac277c (diff)
downloadpylint-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.py40
-rw-r--r--tests/functional/n/no/no_member_subclassed_dataclasses.rc10
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,