diff --git a/ui/medashare/metadata/BitField.py b/ui/medashare/metadata/BitField.py index 7a57556..e029912 100644 --- a/ui/medashare/metadata/BitField.py +++ b/ui/medashare/metadata/BitField.py @@ -1,3 +1,5 @@ +import unittest + class BitFieldMetaClass: def __init__(self, name, bases, dct): for base in bases: @@ -53,10 +55,28 @@ class BitFieldInstance(object): BitField = BitFieldMetaClass("BitField", (), {}) __all__ = [ 'BitField' ] -def bftest(): - class foo(BitField): - bar = 3 - foo = 4 - bleh = 16 +class _BFTest(unittest.TestCase): + def test_bftest(self): + class foo(BitField): + bar = 3 + foo = 4 + bleh = 16 + + i = foo(16) + + self.assertEqual(int(i), 16) + self.assertFalse(i.bar) + self.assertTrue(i.foo) + self.assertFalse(i.bleh) + + with self.assertRaises(AttributeError): + i.asldfkj + + i.bar = True + + self.assertTrue(i.bar) + + self.assertEqual(int(i), 2**4 | 2**3) - return foo(16) + self.assertEqual(repr(i), "BitFieldInstance('foo', {'bar': 3, 'foo': 4, 'bleh': 16}, 24)") + self.assertEqual(str(i), '') diff --git a/ui/medashare/tests.py b/ui/medashare/tests.py index 7120e3f..094667f 100644 --- a/ui/medashare/tests.py +++ b/ui/medashare/tests.py @@ -10,3 +10,4 @@ from .magic import _TestMagic from .metadata.crw import _TestCRW from .metadata.crw import _TestFileMock from .metadata.crw import _TestSparseCover +from .metadata.BitField import _BFTest