def test_create_table_from_dicts(): table = Table([{0: "a"}, {0: "b"}], default=None) assert table.data == [TableRow({0: "a"}), TableRow({0: "b"})] assert table.default is None
def test_table_row_columns(): row = TableRow({"a": 0, "c": 2}) assert row.columns == ["a", "c"]
def test_table_row_map(): row = TableRow({0: "world", 1: "sun"}) assert row.map(lambda x: "hello " + x).data == { 0: "hello world", 1: "hello sun" }
def test_table_row_set_value(): row = TableRow() row[10] = "a" assert row[10] == "a"
def test_table_row_string_representation(): row = TableRow({0: "a"}) assert str(row) == "{0: 'a'}"
def test_table_row_get_default_value(): row0 = TableRow(default=None) row1 = TableRow(default=int) assert row0[100] is None assert row1[100] == 0
def test_table_row_get_value(): row = TableRow({0: "a"}) assert row[0] == "a"
def test_table_row_exception(): with pytest.raises(AutomatonError) as e: TableRow("string") assert e.value.args[0] == "Unsupported type: <class 'str'>"
def test_create_empty_table_row(): row = TableRow() assert row.data == {} assert row.default is None
def test_table_with_empty_row(): table = Table.with_empty_row(default=int) assert len(table) == 1 assert table[0] == TableRow(default=int)
def test_table_get_row(): table = Table([{0: "a"}, {1: "b"}], default=str) assert table[0] == TableRow({0: "a"}, default=str) assert table[1] == TableRow({1: "b"}, default=str)
def test_create_empty_table_row(): row = TableRow() assert row.data == {} assert row.default is None def test_table_row_exception(): with pytest.raises(AutomatonError) as e: TableRow("string") assert e.value.args[0] == "Unsupported type: <class 'str'>" @pytest.mark.parametrize( "this, other, result", [(TableRow({0: "a"}, None), "not-a-table-row", False), (TableRow(), TableRow(), True), (TableRow({0: "a"}, None), TableRow({0: "a"}, None), True), (TableRow({0: "a"}, None), TableRow({0: "a"}, int), False), (TableRow({0: "a"}, None), TableRow({1: "a"}, None), False)]) def test_table_row_equality(this, other, result): assert (this == other) is result def test_table_row_get_default_value(): row0 = TableRow(default=None) row1 = TableRow(default=int) assert row0[100] is None assert row1[100] == 0