Esempio n. 1
0
 def test_list_of_primitive(self):
     schema = {"foo": [float]}
     record = {"foo": [1, 2, 3]}
     gold = {"foo": [1.0, 2.0, 3.0]}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 2
0
 def test_falsy_both(self):
     schema = {}
     record = {}
     gold = {}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 3
0
 def test_numeric_type_conflict(self):
     schema = {"foo": float}
     record = {"foo": 1}
     gold = {"foo": 1.0}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 4
0
 def test_nested(self):
     schema = {"foo": {"bar": str}}
     record = {"foo": {"bar": 1}}
     gold = {"foo": {"bar": "1"}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 5
0
 def test_removes_extra_key_in_list(self):
     schema = {"foo": [{"bar": int}]}
     record = {"foo": [{"bar": 1, "baz": 2}]}
     gold = {"foo": [{"bar": 1}]}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 6
0
 def test_adds_missing_key_in_list(self):
     schema = {"foo": [{"bar": int, "baz": int}]}
     record = {"foo": [{"bar": 1}]}
     gold = {"foo": [{"bar": 1, "baz": None}]}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 7
0
 def test_throws_exception_on_bad_cast(self):
     schema = {"foo": int}
     record = {"foo": "hi"}
     with self.assertRaises(ValueError):
         coerce(schema, record)
Esempio n. 8
0
 def test_list_of_dicts(self):
     schema = {"foo": [{"bar": str}]}
     record = {"foo": [{"bar": 1.0}, {"bar": 2.0}]}
     gold = {"foo": [{"bar": "1.0"}, {"bar": "2.0"}]}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 9
0
 def test_convert_string_list_to_list(self):
     schema = {"foo": [float]}
     record = {"foo": "[1, 2, 3]"}
     gold = {"foo": [1.0, 2.0, 3.0]}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 10
0
 def test_convert_string_dict_to_dict(self):
     schema = {"foo": {"bar": float}}
     record = {"foo": '{"bar": 1}'}
     gold = {"foo": {"bar": 1.0}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 11
0
 def test_extra_nested_lists(self):
     schema = {"foo": {"bar": [{"baz": [{"qux": float}]}]}}
     record = {"foo": {"bar": [{"baz": [{"qux": 1}, {"dur": "hi"}]}]}}
     gold = {"foo": {"bar": [{"baz": [{"qux": 1}, {"qux": None}]}]}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 12
0
 def test_specify_default_type(self):
     schema = {"foo": int}
     record = {}
     gold = {"foo": 0}
     output = coerce(schema, record, {int: 0})
     self.assertEqual(gold, output)
Esempio n. 13
0
 def test_falsy_schema(self):
     schema = {}
     record = {"foo": 1}
     gold = {}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 14
0
 def test_set_of_primitive(self):
     schema = {"foo": {float}}
     record = {"foo": {1, 2, 3}}
     gold = {"foo": {1.0, 2.0, 3.0}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 15
0
 def test_pseudo_immutability(self):
     schema = {"foo": [{"bar": int, "baz": int}]}
     record = {"foo": [{"bar": 1}]}
     coerce(schema, record)
     self.assertEqual(record, {"foo": [{"bar": 1}]})
     self.assertEqual(schema, {"foo": [{"bar": int, "baz": int}]})
Esempio n. 16
0
 def test_tuple_of_primitive(self):
     schema = {"foo": (float, )}
     record = {"foo": (1, 2, 3)}
     gold = {"foo": (1.0, 2.0, 3.0)}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 17
0
 def test_falsy_record(self):
     schema = {"foo": int}
     record = {}
     gold = {"foo": None}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 18
0
 def test_removes_extra_nested_key(self):
     schema = {"foo": {"bar": int}}
     record = {"foo": {"bar": 1, "baz": 2}}
     gold = {"foo": {"bar": 1}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 19
0
 def test_no_change(self):
     schema = {"foo": str}
     record = {"foo": "hi"}
     gold = {"foo": "hi"}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 20
0
 def test_adds_missing_key(self):
     schema = {"foo": int, "bar": int}
     record = {"foo": 1}
     gold = {"foo": 1, "bar": None}
     output = coerce(schema, record)
     self.assertEqual(gold, output)
Esempio n. 21
0
 def test_adds_handles_single_extra_nested_key(self):
     schema = {"foo": {"bar": int}}
     record = {"foo": {"baz": 1}}
     gold = {"foo": {"bar": None}}
     output = coerce(schema, record)
     self.assertEqual(gold, output)