diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2023-02-09 22:32:39 +0100 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2023-02-09 23:53:46 +0100 |
commit | 6fb696561d1ad580f5ee7349df2f6a2bdbc4af64 (patch) | |
tree | b2806e3269d56dffb6fdbc6af0403af15d2ef717 /tests/brain | |
parent | d4852be40cdf88d61d2c13fce22f1ec08fa23f3f (diff) | |
download | astroid-git-6fb696561d1ad580f5ee7349df2f6a2bdbc4af64.tar.gz |
[brain tests] Burst hashlib from the main file
Diffstat (limited to 'tests/brain')
-rw-r--r-- | tests/brain/test_brain.py | 56 | ||||
-rw-r--r-- | tests/brain/test_hashlib.py | 64 |
2 files changed, 64 insertions, 56 deletions
diff --git a/tests/brain/test_brain.py b/tests/brain/test_brain.py index c1c41aad..839d1fb4 100644 --- a/tests/brain/test_brain.py +++ b/tests/brain/test_brain.py @@ -2,8 +2,6 @@ # For details: https://github.com/PyCQA/astroid/blob/main/LICENSE # Copyright (c) https://github.com/PyCQA/astroid/blob/main/CONTRIBUTORS.txt -"""Tests for basic functionality in astroid.brain.""" - from __future__ import annotations import io @@ -20,7 +18,6 @@ import astroid from astroid import MANAGER, bases, builder, nodes, objects, test_utils, util from astroid.bases import Instance from astroid.brain.brain_namedtuple_enum import _get_namedtuple_fields -from astroid.const import PY39_PLUS from astroid.exceptions import ( AttributeInferenceError, InferenceError, @@ -81,59 +78,6 @@ def assertEqualMro(klass: ClassDef, expected_mro: list[str]) -> None: assert [member.qname() for member in klass.mro()] == expected_mro -class HashlibTest(unittest.TestCase): - def _assert_hashlib_class(self, class_obj: ClassDef) -> None: - self.assertIn("update", class_obj) - self.assertIn("digest", class_obj) - self.assertIn("hexdigest", class_obj) - self.assertIn("block_size", class_obj) - self.assertIn("digest_size", class_obj) - # usedforsecurity was added in Python 3.9, see 8e7174a9 - self.assertEqual(len(class_obj["__init__"].args.args), 3 if PY39_PLUS else 2) - self.assertEqual( - len(class_obj["__init__"].args.defaults), 2 if PY39_PLUS else 1 - ) - self.assertEqual(len(class_obj["update"].args.args), 2) - - def test_hashlib(self) -> None: - """Tests that brain extensions for hashlib work.""" - hashlib_module = MANAGER.ast_from_module_name("hashlib") - for class_name in ( - "md5", - "sha1", - "sha224", - "sha256", - "sha384", - "sha512", - "sha3_224", - "sha3_256", - "sha3_384", - "sha3_512", - ): - class_obj = hashlib_module[class_name] - self._assert_hashlib_class(class_obj) - self.assertEqual(len(class_obj["digest"].args.args), 1) - self.assertEqual(len(class_obj["hexdigest"].args.args), 1) - - def test_shake(self) -> None: - """Tests that the brain extensions for the hashlib shake algorithms work.""" - hashlib_module = MANAGER.ast_from_module_name("hashlib") - for class_name in ("shake_128", "shake_256"): - class_obj = hashlib_module[class_name] - self._assert_hashlib_class(class_obj) - self.assertEqual(len(class_obj["digest"].args.args), 2) - self.assertEqual(len(class_obj["hexdigest"].args.args), 2) - - def test_blake2(self) -> None: - """Tests that the brain extensions for the hashlib blake2 hash functions work.""" - hashlib_module = MANAGER.ast_from_module_name("hashlib") - for class_name in ("blake2b", "blake2s"): - class_obj = hashlib_module[class_name] - self.assertEqual(len(class_obj["__init__"].args.args), 2) - self.assertEqual(len(class_obj["digest"].args.args), 1) - self.assertEqual(len(class_obj["hexdigest"].args.args), 1) - - class CollectionsDequeTests(unittest.TestCase): def _inferred_queue_instance(self) -> Instance: node = builder.extract_node( diff --git a/tests/brain/test_hashlib.py b/tests/brain/test_hashlib.py new file mode 100644 index 00000000..84c8b175 --- /dev/null +++ b/tests/brain/test_hashlib.py @@ -0,0 +1,64 @@ +# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html +# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE +# Copyright (c) https://github.com/PyCQA/astroid/blob/main/CONTRIBUTORS.txt + +from __future__ import annotations + +import unittest + +from astroid import MANAGER +from astroid.const import PY39_PLUS +from astroid.nodes.scoped_nodes import ClassDef + + +class HashlibTest(unittest.TestCase): + def _assert_hashlib_class(self, class_obj: ClassDef) -> None: + self.assertIn("update", class_obj) + self.assertIn("digest", class_obj) + self.assertIn("hexdigest", class_obj) + self.assertIn("block_size", class_obj) + self.assertIn("digest_size", class_obj) + # usedforsecurity was added in Python 3.9, see 8e7174a9 + self.assertEqual(len(class_obj["__init__"].args.args), 3 if PY39_PLUS else 2) + self.assertEqual( + len(class_obj["__init__"].args.defaults), 2 if PY39_PLUS else 1 + ) + self.assertEqual(len(class_obj["update"].args.args), 2) + + def test_hashlib(self) -> None: + """Tests that brain extensions for hashlib work.""" + hashlib_module = MANAGER.ast_from_module_name("hashlib") + for class_name in ( + "md5", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512", + "sha3_224", + "sha3_256", + "sha3_384", + "sha3_512", + ): + class_obj = hashlib_module[class_name] + self._assert_hashlib_class(class_obj) + self.assertEqual(len(class_obj["digest"].args.args), 1) + self.assertEqual(len(class_obj["hexdigest"].args.args), 1) + + def test_shake(self) -> None: + """Tests that the brain extensions for the hashlib shake algorithms work.""" + hashlib_module = MANAGER.ast_from_module_name("hashlib") + for class_name in ("shake_128", "shake_256"): + class_obj = hashlib_module[class_name] + self._assert_hashlib_class(class_obj) + self.assertEqual(len(class_obj["digest"].args.args), 2) + self.assertEqual(len(class_obj["hexdigest"].args.args), 2) + + def test_blake2(self) -> None: + """Tests that the brain extensions for the hashlib blake2 hash functions work.""" + hashlib_module = MANAGER.ast_from_module_name("hashlib") + for class_name in ("blake2b", "blake2s"): + class_obj = hashlib_module[class_name] + self.assertEqual(len(class_obj["__init__"].args.args), 2) + self.assertEqual(len(class_obj["digest"].args.args), 1) + self.assertEqual(len(class_obj["hexdigest"].args.args), 1) |