def test_props_set_by_server(self): import datetime from google.cloud._helpers import UTC from google.cloud._helpers import _millis CREATED = datetime.datetime(2015, 7, 29, 12, 13, 22, tzinfo=UTC) MODIFIED = datetime.datetime(2015, 7, 29, 14, 47, 15, tzinfo=UTC) TABLE_FULL_ID = '%s:%s:%s' % ( self.PROJECT, self.DS_ID, self.TABLE_NAME) URL = 'http://example.com/projects/%s/datasets/%s/tables/%s' % ( self.PROJECT, self.DS_ID, self.TABLE_NAME) dataset = DatasetReference(self.PROJECT, self.DS_ID) table_ref = dataset.table(self.TABLE_NAME) table = self._make_one(table_ref) table._properties['creationTime'] = _millis(CREATED) table._properties['etag'] = 'ETAG' table._properties['lastModifiedTime'] = _millis(MODIFIED) table._properties['numBytes'] = 12345 table._properties['numRows'] = 66 table._properties['selfLink'] = URL table._properties['id'] = TABLE_FULL_ID table._properties['type'] = 'TABLE' self.assertEqual(table.created, CREATED) self.assertEqual(table.etag, 'ETAG') self.assertEqual(table.modified, MODIFIED) self.assertEqual(table.num_bytes, 12345) self.assertEqual(table.num_rows, 66) self.assertEqual(table.self_link, URL) self.assertEqual(table.full_table_id, TABLE_FULL_ID) self.assertEqual(table.table_type, 'TABLE')
def _datetime_and_millis(): import datetime from google.cloud._helpers import _millis now = datetime.datetime.utcnow().replace( microsecond=123000, tzinfo=datetime.timezone.utc, # stats timestamps have ms precision ) return now, _millis(now)
def test_from_api_repr_w_properties(self): import datetime from google.cloud._helpers import UTC from google.cloud._helpers import _millis RESOURCE = self._make_resource() RESOURCE['view'] = {'query': 'select fullname, age from person_ages'} RESOURCE['type'] = 'VIEW' RESOURCE['location'] = 'EU' self.EXP_TIME = datetime.datetime(2015, 8, 1, 23, 59, 59, tzinfo=UTC) RESOURCE['expirationTime'] = _millis(self.EXP_TIME) klass = self._get_target_class() table = klass.from_api_repr(RESOURCE) self._verifyResourceProperties(table, RESOURCE)
def _call_fut(self, value): from google.cloud._helpers import _millis return _millis(value)
def _call_fut(self, value): from google.cloud._helpers import _millis return _millis(value)
def test_props_set_by_server(self): import datetime from google.cloud._helpers import UTC from google.cloud._helpers import _millis CREATED = datetime.datetime(2015, 8, 11, 12, 13, 22, tzinfo=UTC) STARTED = datetime.datetime(2015, 8, 11, 13, 47, 15, tzinfo=UTC) ENDED = datetime.datetime(2015, 8, 11, 14, 47, 15, tzinfo=UTC) FULL_JOB_ID = "%s:%s" % (self.PROJECT, self.JOB_ID) URL = "http://example.com/projects/%s/jobs/%s" % (self.PROJECT, self.JOB_ID) EMAIL = "*****@*****.**" ERROR_RESULT = { "debugInfo": "DEBUG", "location": "LOCATION", "message": "MESSAGE", "reason": "REASON", } client = _make_client(project=self.PROJECT) job = self._make_one(self.JOB_ID, [self.SOURCE1], self.TABLE_REF, client) job._properties["etag"] = "ETAG" job._properties["id"] = FULL_JOB_ID job._properties["selfLink"] = URL job._properties["user_email"] = EMAIL statistics = job._properties["statistics"] = {} statistics["creationTime"] = _millis(CREATED) statistics["startTime"] = _millis(STARTED) statistics["endTime"] = _millis(ENDED) self.assertEqual(job.etag, "ETAG") self.assertEqual(job.self_link, URL) self.assertEqual(job.user_email, EMAIL) self.assertEqual(job.created, CREATED) self.assertEqual(job.started, STARTED) self.assertEqual(job.ended, ENDED) # running jobs have no load stats not yet set. self.assertIsNone(job.output_bytes) load_stats = statistics["load"] = {} load_stats["inputFileBytes"] = 12345 load_stats["inputFiles"] = 1 load_stats["outputBytes"] = 23456 load_stats["outputRows"] = 345 self.assertEqual(job.input_file_bytes, 12345) self.assertEqual(job.input_files, 1) self.assertEqual(job.output_bytes, 23456) self.assertEqual(job.output_rows, 345) status = job._properties["status"] = {} self.assertIsNone(job.error_result) self.assertIsNone(job.errors) self.assertIsNone(job.state) status["errorResult"] = ERROR_RESULT status["errors"] = [ERROR_RESULT] status["state"] = "STATE" self.assertEqual(job.error_result, ERROR_RESULT) self.assertEqual(job.errors, [ERROR_RESULT]) self.assertEqual(job.state, "STATE")