diff --git a/pypika/terms.py b/pypika/terms.py index b25af5c5..ce7aed65 100644 --- a/pypika/terms.py +++ b/pypika/terms.py @@ -548,6 +548,10 @@ def __init__( ) -> None: super().__init__(alias=alias) self.name = name + if isinstance(table, str): + # avoid circular import at load time + from pypika.queries import Table + table = Table(table) self.table = table def nodes_(self) -> Iterator[NodeT]: diff --git a/pypika/tests/test_terms.py b/pypika/tests/test_terms.py index 562e0d28..607c4c01 100644 --- a/pypika/tests/test_terms.py +++ b/pypika/tests/test_terms.py @@ -15,6 +15,13 @@ def test_when_alias_specified(self): self.assertEqual('bar', str(c1.alias)) +class FieldInitTests(TestCase): + def test_init_with_str_table(self): + test_table_name = "test_table" + field = Field(name="name", table=test_table_name) + self.assertEqual(field.table, Table(name=test_table_name)) + + class FieldHashingTests(TestCase): def test_tabled_eq_fields_equally_hashed(self): client_name1 = Field(name="name", table=Table("clients"))