Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1809)

Unified Diff: infra/libs/types/test/types_test.py

Issue 355153002: Refactor infra git libs and testing. (Closed) Base URL: https://chromium.googlesource.com/infra/infra@fake_testing_support
Patch Set: Change config ref to have a sandard naming scheme Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: infra/libs/types/test/types_test.py
diff --git a/infra/libs/types/test/types_test.py b/infra/libs/types/test/types_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d269c9e124a44f2f5390d3e088c4e9a427420ca
--- /dev/null
+++ b/infra/libs/types/test/types_test.py
@@ -0,0 +1,73 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import unittest
+import collections
+
+from infra.libs import types
+
+
+class TestFreeze(unittest.TestCase):
+ def testDict(self):
+ d = collections.OrderedDict()
+ d['cat'] = 100
+ d['dog'] = 0
+
+ f = types.freeze(d)
+ self.assertEqual(d, f)
+ self.assertIsInstance(f, types.FrozenDict)
+ self.assertEqual(
+ hash(f),
+ hash((0, ('cat', 100))) ^ hash((1, ('dog', 0)))
+ )
+ self.assertEqual(len(d), len(f))
+
+ # Cover equality
+ self.assertEqual(f, f)
+ self.assertNotEqual(f, 'dog')
+ self.assertNotEqual(f, {'bob': 'hat'})
+ self.assertNotEqual(f, {'cat': 20, 'dog': 10})
+
+ def testList(self):
+ l = [1, 2, {'bob': 100}]
+ f = types.freeze(l)
+ self.assertSequenceEqual(l, f)
+ self.assertIsInstance(f, tuple)
+
+ def testSet(self):
+ s = {1, 2, types.freeze({'bob': 100})}
+ f = types.freeze(s)
+ self.assertEqual(s, f)
+ self.assertIsInstance(f, frozenset)
+
+
+class TestThaw(unittest.TestCase):
+ def testDict(self):
+ d = collections.OrderedDict()
+ d['cat'] = 100
+ d['dog'] = 0
+ f = types.freeze(d)
+ t = types.thaw(f)
+ self.assertEqual(d, f)
+ self.assertEqual(t, f)
+ self.assertEqual(d, t)
+ self.assertIsInstance(t, collections.OrderedDict)
+
+ def testList(self):
+ l = [1, 2, {'bob': 100}]
+ f = types.freeze(l)
+ t = types.thaw(f)
+ self.assertSequenceEqual(l, f)
+ self.assertSequenceEqual(f, t)
+ self.assertSequenceEqual(l, t)
+ self.assertIsInstance(t, list)
+
+ def testSet(self):
+ s = {1, 2, 'cat'}
+ f = types.freeze(s)
+ t = types.thaw(f)
+ self.assertEqual(s, f)
+ self.assertEqual(f, t)
+ self.assertEqual(t, s)
+ self.assertIsInstance(t, set)

Powered by Google App Engine
This is Rietveld 408576698