From 13822469773852f7355f56083e640af8df3e87e1 Mon Sep 17 00:00:00 2001 From: matejcik Date: Tue, 1 Jun 2021 13:48:50 +0200 Subject: [PATCH] fix(core/tests): fix equality testing for new message types --- core/tests/test_apps.nem.mosaic.py | 14 +++++++------- core/tests/unittest.py | 22 +++++++++++++++++++++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/core/tests/test_apps.nem.mosaic.py b/core/tests/test_apps.nem.mosaic.py index 5f7f9f8dc..8f224fd5d 100644 --- a/core/tests/test_apps.nem.mosaic.py +++ b/core/tests/test_apps.nem.mosaic.py @@ -129,39 +129,39 @@ class TestNemMosaic(unittest.TestCase): b.quantity = 1 b.mosaic = 'mosaic' res = sort_mosaics([a, b]) - self.assertEqual(res, [b, a]) + self.assertListEqual(res, [b, a]) a.namespace = '' b.namespace = 'a.b.c' res = sort_mosaics([a, b]) - self.assertEqual(res, [a, b]) + self.assertListEqual(res, [a, b]) a.namespace = 'z.z.z' b.namespace = 'a.b.c' res = sort_mosaics([a, b]) - self.assertEqual(res, [b, a]) + self.assertListEqual(res, [b, a]) a.namespace = 'a' b.namespace = 'a' a.mosaic = 'mosaic' b.mosaic = 'mosaic' res = sort_mosaics([a, b]) - self.assertEqual(res, [a, b]) + self.assertListEqual(res, [a, b]) a.mosaic = 'www' b.mosaic = 'aaa' res = sort_mosaics([a, b]) - self.assertEqual(res, [b, a]) + self.assertListEqual(res, [b, a]) c = NEMMosaic() c.namespace = 'a' c.mosaic = 'zzz' res = sort_mosaics([a, b, c]) - self.assertEqual(res, [b, a, c]) + self.assertListEqual(res, [b, a, c]) c.mosaic = 'bbb' res = sort_mosaics([a, b, c]) - self.assertEqual(res, [b, c, a]) + self.assertListEqual(res, [b, c, a]) if __name__ == '__main__': diff --git a/core/tests/unittest.py b/core/tests/unittest.py index f6651c13a..8121c4271 100644 --- a/core/tests/unittest.py +++ b/core/tests/unittest.py @@ -33,7 +33,11 @@ class TestCase: def assertEqual(self, x, y, msg=''): if not msg: msg = "%r vs (expected) %r" % (x, y) - ensure(x == y, msg) + + if x.__class__ == y.__class__ and x.__class__.__name__ == "Msg": + self.assertMessageEqual(x, y) + else: + ensure(x == y, msg) def assertNotEqual(self, x, y, msg=''): if not msg: @@ -152,6 +156,22 @@ class TestCase: self.assertIsInstance(a, b.__class__, msg) self.assertEqual(a.__dict__, b.__dict__, msg) + def assertMessageEqual(self, x, y): + self.assertEqual( + x.MESSAGE_NAME, + y.MESSAGE_NAME, + "Expected {}, found {}".format(x.MESSAGE_NAME, y.MESSAGE_NAME) + ) + xdict = x.__dict__ + ydict = y.__dict__ + for key in xdict: + self.assertTrue(key in ydict) + self.assertEqual( + xdict[key], + ydict[key], + "At {}.{} expected {}, found {}".format(x.MESSAGE_NAME, key, xdict[key], ydict[key]) + ) + def skip(msg): def _decor(fun):