diff --git a/bigquery/google/cloud/bigquery/table.py b/bigquery/google/cloud/bigquery/table.py index 5b1de345c068..b1fe36c3dbed 100644 --- a/bigquery/google/cloud/bigquery/table.py +++ b/bigquery/google/cloud/bigquery/table.py @@ -388,8 +388,7 @@ class Table(object): } def __init__(self, table_ref, schema=None): - if isinstance(table_ref, six.string_types): - table_ref = TableReference.from_string(table_ref) + table_ref = _table_arg_to_table_ref(table_ref) self._properties = {"tableReference": table_ref.to_api_repr(), "labels": {}} # Let the @property do validation. if schema is not None: diff --git a/bigquery/tests/unit/test_table.py b/bigquery/tests/unit/test_table.py index a141d8f38abf..e14420846846 100644 --- a/bigquery/tests/unit/test_table.py +++ b/bigquery/tests/unit/test_table.py @@ -526,6 +526,47 @@ def test_ctor_string(self): self.assertEqual(table.dataset_id, "some_dset") self.assertEqual(table.table_id, "some_tbl") + def test_ctor_tablelistitem(self): + from google.cloud.bigquery.table import Table, TableListItem + + import datetime + from google.cloud._helpers import _millis, UTC + + self.WHEN_TS = 1437767599.125 + self.EXP_TIME = datetime.datetime(2015, 8, 1, 23, 59, 59, tzinfo=UTC) + + project = "test-project" + dataset_id = "test_dataset" + table_id = "coffee_table" + resource = { + "creationTime": self.WHEN_TS * 1000, + "expirationTime": _millis(self.EXP_TIME), + "kind": "bigquery#table", + "id": "{}:{}.{}".format(project, dataset_id, table_id), + "tableReference": { + "projectId": project, + "datasetId": dataset_id, + "tableId": table_id, + }, + "friendlyName": "Mahogany Coffee Table", + "type": "TABLE", + "timePartitioning": { + "type": "DAY", + "field": "mycolumn", + "expirationMs": "10000", + }, + "labels": {"some-stuff": "this-is-a-label"}, + "clustering": {"fields": ["string"]}, + } + + table_list_item = TableListItem(resource) + table = Table(table_list_item) + + self.assertIsNone(table.created) + self.assertEqual(table.reference.project, project) + self.assertEqual(table.reference.dataset_id, dataset_id) + self.assertEqual(table.reference.table_id, table_id) + def test_ctor_string_wo_project_id(self): with pytest.raises(ValueError): # Project ID is missing.