def create_environment(values, session=None): env = models.Environment() env.update(values) try: env.save(session=session) except db_exc.DBDuplicateEntry as e: raise exc.DBDuplicateEntryError("Duplicate entry for Environment: %s" % e.columns) return env
def create_environment(values, session=None): env = models.Environment() env.update(values) try: env.save(session=session) except db_exc.DBDuplicateEntry: raise exc.DBDuplicateEntryError( "Duplicate entry for Environment ['name', 'project_id']:" " {}, {}".format(env.name, env.project_id)) return env
def test_resource_to_db_model(self): resource = api.Environment( **_convert_vars_to_string(copy.deepcopy(ENVIRONMENT)) ) values = resource.to_dict() values['variables'] = json.loads(values['variables']) values['created_at'] = datetime.datetime.strptime( values['created_at'], DATETIME_FORMAT) values['updated_at'] = datetime.datetime.strptime( values['updated_at'], DATETIME_FORMAT) db_model = db.Environment(**values) db_api.create_environment(db_model) self.assertEqual(values['id'], db_model.id) self.assertEqual(values['name'], db_model.name) self.assertIsNone(db_model.project_id) self.assertEqual(values['description'], db_model.description) self.assertDictEqual(values['variables'], db_model.variables) self.assertEqual(values['created_at'], db_model.created_at) self.assertEqual(values['updated_at'], db_model.updated_at)
'name': 'test', 'description': 'my test settings', 'variables': { 'key1': 'abc', 'key2': 123 }, 'scope': 'private', 'created_at': str(datetime.datetime.utcnow()), 'updated_at': str(datetime.datetime.utcnow()) } ENVIRONMENT_DB = models.Environment( id=ENVIRONMENT['id'], name=ENVIRONMENT['name'], description=ENVIRONMENT['description'], variables=ENVIRONMENT['variables'], scope=ENVIRONMENT['scope'], created_at=datetime.datetime.strptime(ENVIRONMENT['created_at'], DATETIME_FORMAT), updated_at=datetime.datetime.strptime(ENVIRONMENT['updated_at'], DATETIME_FORMAT)) MOCK_ENVIRONMENT = mock.MagicMock(return_value=ENVIRONMENT_DB) MOCK_NOT_FOUND = mock.MagicMock(side_effect=exc.DBEntityNotFoundError()) @mock.patch.object(exe, 'get_executor', mock.Mock()) class DefaultEngineTest(base.DbTestCase): def setUp(self): super(DefaultEngineTest, self).setUp() wb_service.create_workbook_v2(WORKBOOK)
} ENVIRONMENT_WITH_ILLEGAL_FIELD = { 'id': str(uuid.uuid4()), 'name': 'test', 'description': 'my test settings', 'extra_field': 'I can add whatever I want here', 'variables': VARIABLES, 'scope': 'private', } ENVIRONMENT_DB = db.Environment( id=ENVIRONMENT['id'], name=ENVIRONMENT['name'], description=ENVIRONMENT['description'], variables=copy.deepcopy(VARIABLES), scope=ENVIRONMENT['scope'], created_at=datetime.datetime.strptime(ENVIRONMENT['created_at'], DATETIME_FORMAT), updated_at=datetime.datetime.strptime(ENVIRONMENT['updated_at'], DATETIME_FORMAT)) ENVIRONMENT_DB_DICT = {k: v for k, v in six.iteritems(ENVIRONMENT_DB)} UPDATED_VARIABLES = copy.deepcopy(VARIABLES) UPDATED_VARIABLES['host'] = '127.0.0.1' FOR_UPDATED_ENVIRONMENT = copy.deepcopy(ENVIRONMENT_FOR_UPDATE) FOR_UPDATED_ENVIRONMENT['variables'] = json.dumps(UPDATED_VARIABLES) UPDATED_ENVIRONMENT = copy.deepcopy(ENVIRONMENT) UPDATED_ENVIRONMENT['variables'] = json.dumps(UPDATED_VARIABLES) UPDATED_ENVIRONMENT_DB = db.Environment(**ENVIRONMENT_DB_DICT) UPDATED_ENVIRONMENT_DB.variables = copy.deepcopy(UPDATED_VARIABLES)