def testGetModelDetailsEmptyFields(self): client = Mock() model = Mock(project='project_id', dataset_id='dataset_id', model_id='model_id', description=None, labels={}, created=datetime.datetime(2020, 7, 14, 13, 23, 45, 67, tzinfo=None), expires=datetime.datetime(2021, 7, 14, 13, 23, 45, 67, tzinfo=None), location='US', modified=datetime.datetime(2020, 7, 15, 15, 11, 23, 32, tzinfo=None), model_type=0, label_columns=[], feature_columns=[], training_runs=[Mock(start_time=Mock(seconds=1234567))]) client.get_model = Mock(return_value=model) bigquery = BigQueryService(client) expected = { 'details': { 'id': 'project_id.dataset_id.model_id', 'name': 'model_id', 'description': None, 'labels': None, 'date_created': '2020-07-14T13:23:45.000067', 'expires': '2021-07-14T13:23:45.000067', 'location': 'US', 'last_modified': '2020-07-15T15:11:23.000032', 'model_type': Model.ModelType(0).name, 'schema_labels': [], 'feature_columns': [], 'training_runs': ['1970-01-15T06:56:07+00:00'] } } result = bigquery.get_model_details('some_model_id') self.assertEqual(expected, result)
def testGetModelDetailsFull(self): client = Mock() label_col_0 = Mock() label_col_0.name = 'schema_label_0' label_col_0.type = Mock(type_kind=7) label_col_1 = Mock() label_col_1.name = 'schema_label_1' label_col_1.type = Mock(type_kind=9) feature_col_0 = Mock() feature_col_0.name = 'feature_col_0' feature_col_0.type = Mock(type_kind=8) model = Mock(project='project_id', dataset_id='dataset_id', model_id='model_id', description='description of model', labels={ 'label_0': 'value_0', 'label_1': 'value_1' }, created=datetime.datetime(2020, 7, 14, 13, 23, 45, 67, tzinfo=None), expires=datetime.datetime(2021, 7, 14, 13, 23, 45, 67, tzinfo=None), location='US', modified=datetime.datetime(2020, 7, 15, 15, 11, 23, 32, tzinfo=None), model_type=0, label_columns=[label_col_0, label_col_1], feature_columns=[feature_col_0], training_runs=[ Mock(start_time=Mock(seconds=1234567)), Mock(start_time=Mock(seconds=1234789)) ]) client.get_model = Mock(return_value=model) bigquery = BigQueryService(client) expected = { 'details': { 'id': 'project_id.dataset_id.model_id', 'name': 'model_id', 'description': 'description of model', 'labels': ['label_0: value_0', 'label_1: value_1'], 'date_created': '2020-07-14T13:23:45.000067', 'last_modified': '2020-07-15T15:11:23.000032', 'expires': '2021-07-14T13:23:45.000067', 'location': 'US', 'model_type': Model.ModelType(0).name, 'schema_labels': [{ 'name': 'schema_label_0', 'type': SqlTypeNames[StandardSqlDataTypes(7).name].name }, { 'name': 'schema_label_1', 'type': SqlTypeNames[StandardSqlDataTypes(9).name].name }], 'feature_columns': [{ 'name': 'feature_col_0', 'type': SqlTypeNames[StandardSqlDataTypes(8).name].name }], 'training_runs': ['1970-01-15T06:56:07+00:00', '1970-01-15T06:59:49+00:00'] } } result = bigquery.get_model_details('some_model_id') self.assertEqual(expected, result)