Added a test for isinstance and fixed a bug

This commit is contained in:
fanchi 2018-07-05 16:32:11 +03:00
parent 3fa18d32d9
commit 5059902947
2 changed files with 17 additions and 1 deletions

View File

@ -92,7 +92,7 @@ class Field(object):
while inner_field:
if isinstance(inner_field, types):
return True
inner_field = getattr(self, 'inner_field', None)
inner_field = getattr(inner_field, 'inner_field', None)
return False

View File

@ -73,6 +73,22 @@ class NullableFieldsTest(unittest.TestCase):
else:
self.assertEquals(python_value, value)
def test_isinstance(self):
for field in (StringField, UInt8Field, Float32Field, DateTimeField):
f = NullableField(field())
self.assertTrue(f.isinstance(field))
self.assertTrue(f.isinstance(NullableField))
for field in (Int8Field, Int16Field, Int32Field, Int64Field, UInt8Field, UInt16Field, UInt32Field, UInt64Field):
f = NullableField(field())
self.assertTrue(f.isinstance(BaseIntField))
for field in (Float32Field, Float64Field):
f = NullableField(field())
self.assertTrue(f.isinstance(BaseFloatField))
f = NullableField(NullableField(UInt32Field()))
self.assertTrue(f.isinstance(BaseIntField))
self.assertTrue(f.isinstance(NullableField))
self.assertFalse(f.isinstance(BaseFloatField))
def _insert_sample_data(self):
dt = date(1970, 1, 1)
self.database.insert([