mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
[api] refactoring: implementing __eq__ and __hash__ for PackageUpdate
This commit is contained in:
@@ -263,7 +263,17 @@ class PackageUpdate:
|
|||||||
self.type = pkg_type
|
self.type = pkg_type
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{} (id={}, name={}, version={}, type={})'.format(self.__class__.__name__, self.id, self.name, self.version, self.type)
|
attrs = ', '.join(f'{p}={v}' for p, v in sorted(self.__dict__.items()))
|
||||||
|
return f'{self.__class__.__name__} ({attrs})'
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
if isinstance(other, PackageUpdate):
|
||||||
|
return self.__dict__ == other.__dict__
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return sum(hash(v) for v in self.__dict__.values())
|
||||||
|
|
||||||
|
|
||||||
class PackageHistory:
|
class PackageHistory:
|
||||||
|
|||||||
0
tests/api/__init__.py
Normal file
0
tests/api/__init__.py
Normal file
0
tests/api/abstract/__init__.py
Normal file
0
tests/api/abstract/__init__.py
Normal file
18
tests/api/abstract/test_model.py
Normal file
18
tests/api/abstract/test_model.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from unittest import TestCase
|
||||||
|
|
||||||
|
from bauh.api.abstract.model import PackageUpdate
|
||||||
|
|
||||||
|
|
||||||
|
class PackageUpdateTest(TestCase):
|
||||||
|
|
||||||
|
def test__hash__return_same_hash_for_equal_packages(self):
|
||||||
|
a = PackageUpdate(pkg_id='a', name='b', version='c', pkg_type='d')
|
||||||
|
b = PackageUpdate(pkg_id='a', name='b', version='c', pkg_type='d')
|
||||||
|
self.assertEqual(a, b)
|
||||||
|
self.assertEqual(hash(a), hash(b))
|
||||||
|
|
||||||
|
def test__hash__return_different_hash_for_not_equal_packages(self):
|
||||||
|
a = PackageUpdate(pkg_id='a', name='b', version='c', pkg_type='d')
|
||||||
|
b = PackageUpdate(pkg_id='a', name='b', version='c', pkg_type='e')
|
||||||
|
self.assertNotEqual(a, b)
|
||||||
|
self.assertNotEqual(hash(a), hash(b))
|
||||||
Reference in New Issue
Block a user