def test_export(self): keys = ['a', 'b', 'c', 'd'] values = [250, 'B', 'C', datetime.fromtimestamp(0).isoformat()] expectation = json.dumps([OrderedDict(zip(keys, values))]) row = Row(keys, values) outcome = row.export('json') assert outcome == expectation
def test___init___equal_length(self): keys = ['a', 'b', 'c'] values = ['A', 'B', 'C'] row = Row(keys, values) assert row._keys is keys assert row._values is values
def test___str__(self): keys = ['a', 'b', 'c', 'd'] values = [250, 'B', 'C', datetime.fromtimestamp(0).isoformat()] expectation = json.dumps(OrderedDict(zip(keys, values))) row = Row(keys, values) outcome = str(row) assert outcome == expectation
def test__reduce_datetimes(self): t = datetime.now() origin = [t, 1, 'abc', True, None] expectation = origin.copy() expectation[0] = t.isoformat() outcome = Row._reduce_datetimes(origin) assert outcome == expectation
def test___getitem___multiple_fields(self): row = Row(['a', 'b', 'b'], [1, 2, 3]) with raises(KeyError, match="Multiple 'b' fields."): row['b']
def test___init___unequal_length(self): keys = ['a', 'b', 'c'] values = ['A', 'B'] with raises(AssertionError): Row(keys, values)
def standard_row(): keys = ['id', 'name', 'email', 'birthday'] values = [250, 'Fool', '*****@*****.**', datetime.fromtimestamp(0)] return Row(keys, values, "DummyTable", "DummyDatabase")