def test_insert_explicit_nulls(): TestSchema = Unischema('TestSchema', [ UnischemaField('nullable', np.int32, (), ScalarCodec(StringType()), True), UnischemaField('not_nullable', np.int32, (), ScalarCodec(ShortType()), False), ]) # Insert_explicit_nulls to leave the dictionary as is. row_dict = {'nullable': 0, 'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) assert len(row_dict) == 2 assert row_dict['nullable'] == 0 assert row_dict['not_nullable'] == 1 # Insert_explicit_nulls to leave the dictionary as is. row_dict = {'nullable': None, 'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) assert len(row_dict) == 2 assert row_dict['nullable'] is None assert row_dict['not_nullable'] == 1 # We are missing a nullable field here. insert_explicit_nulls should add a None entry. row_dict = {'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) assert len(row_dict) == 2 assert row_dict['nullable'] is None assert row_dict['not_nullable'] == 1 # We are missing a not_nullable field here. Should raise an ValueError. row_dict = {'nullable': 0} with pytest.raises(ValueError): insert_explicit_nulls(TestSchema, row_dict)
def test_insert_explicit_nulls(self): TestSchema = Unischema('TestSchema', [ UnischemaField('nullable', np.int32, (), ScalarCodec(StringType()), True), UnischemaField('not_nullable', np.int32, (), ScalarCodec(ShortType()), False), ]) # Insert_explicit_nulls to leave the dictionary as is. row_dict = {'nullable': 0, 'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) self.assertEqual(len(row_dict), 2) self.assertEqual(row_dict['nullable'], 0) self.assertEqual(row_dict['not_nullable'], 1) # Insert_explicit_nulls to leave the dictionary as is. row_dict = {'nullable': None, 'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) self.assertEqual(len(row_dict), 2) self.assertEqual(row_dict['nullable'], None) self.assertEqual(row_dict['not_nullable'], 1) # We are missing a nullable field here. insert_explicit_nulls should add a None entry. row_dict = {'not_nullable': 1} insert_explicit_nulls(TestSchema, row_dict) self.assertEqual(len(row_dict), 2) self.assertEqual(row_dict['nullable'], None) self.assertEqual(row_dict['not_nullable'], 1) # We are missing a not_nullable field here. Should raise an ValueError. row_dict = {'nullable': 0} with self.assertRaises(ValueError): insert_explicit_nulls(TestSchema, row_dict)