diff --git a/freezer_api/tests/unit/common.py b/freezer_api/tests/unit/common.py index 13572744..ca3fb65d 100644 --- a/freezer_api/tests/unit/common.py +++ b/freezer_api/tests/unit/common.py @@ -237,6 +237,51 @@ fake_job_0 = { } +fake_job_2 = { + "job_actions": [ + { + "freezer_action": { + "action": "backup", + "mode": "fs", + "src_file": "/home/tylerdurden/project_mayhem", + "backup_name": "project_mayhem_backup", + "container": "my_backup_container1" + }, + "max_retries": 6, + "max_retries_interval": 100, + "mandatory": False + }, + { + "freezer_action": { + "action": "restore", + "mode": "fs", + "restore_abs_path": "/home/tylerdurden/project_mayhem", + "restore_from_host": "node_on_which_backup_was_made", + "backup_name": "project_mayhem_backup", + "container": "my_backup_container1" + }, + "max_retries": 4, + "max_retries_interval": 60, + "mandatory": True + } + ], + "job_schedule": { + "time_created": 1234, + "time_started": 1234, + "time_ended": 1234, + "status": "stop", + "result": "success", + "schedule_date": "2015-06-02T16:20:00", + "schedule_interval": "7 days" + }, + "job_id": "e7181e5e-2c75-43f8-92c0-c037ae5f11e4", + "client_id": "mytenantid_myhostname1", + "user_id": "f4db4da085f043059441565720b217c7", + "project_id": "tecs", + "description": "test action 5" +} + + def get_fake_job_0(): return copy.deepcopy(fake_job_0) @@ -247,6 +292,10 @@ def get_fake_job_1(): return job +def get_fake_job_2(): + return copy.deepcopy(fake_job_2) + + fake_job_0_elasticsearch_found = { "_id": "e7181e5e-2c75-43f8-92c0-c037ae5f11e4", "_index": "freezer", diff --git a/freezer_api/tests/unit/sqlalchemy/test_job.py b/freezer_api/tests/unit/sqlalchemy/test_job.py index 232e7405..a33c2792 100644 --- a/freezer_api/tests/unit/sqlalchemy/test_job.py +++ b/freezer_api/tests/unit/sqlalchemy/test_job.py @@ -29,14 +29,17 @@ class DbJobTestCase(base.DbTestCase): super(DbJobTestCase, self).setUp() self.fake_job_0 = common.get_fake_job_0() self.fake_job_0.pop('job_id') + self.fake_job_2 = common.get_fake_job_2() + self.fake_job_2.pop('job_id') + self.fake_project_id = self.fake_job_0.get('project_id') def test_add_and_get_job(self): job_doc = copy.deepcopy(self.fake_job_0) job_id = self.dbapi.add_job(user_id=self.fake_job_0.get('user_id'), doc=job_doc, - project_id="myproject") + project_id=self.fake_project_id) self.assertIsNotNone(job_id) - result = self.dbapi.get_job(project_id="myproject", + result = self.dbapi.get_job(project_id=self.fake_project_id, user_id=self.fake_job_0.get('user_id'), job_id=job_id) self.assertIsNotNone(result) @@ -64,16 +67,47 @@ class DbJobTestCase(base.DbTestCase): job_doc = copy.deepcopy(self.fake_job_0) job_id = self.dbapi.add_job(user_id=self.fake_job_0.get('user_id'), doc=job_doc, - project_id="myproject") + project_id=self.fake_project_id) self.assertIsNotNone(job_id) result = self.dbapi.delete_job(user_id=self.fake_job_0.get('user_id'), job_id=job_id, - project_id="myproject") + project_id=self.fake_project_id) self.assertIsNotNone(result) self.assertEqual(result, job_id) - result = self.dbapi.get_job(project_id="myproject", + result = self.dbapi.get_job(project_id=self.fake_project_id, user_id=self.fake_job_0.get('user_id'), job_id=job_id) self.assertEqual(len(result), 0) + + def test_add_and_update_job(self): + job_doc = copy.deepcopy(self.fake_job_0) + job_id = self.dbapi.add_job(user_id=self.fake_job_0.get('user_id'), + doc=job_doc, + project_id=self.fake_project_id) + self.assertIsNotNone(job_id) + + patch_doc = copy.deepcopy(self.fake_job_2) + + result = self.dbapi.update_job(user_id=self.fake_job_2.get('user_id'), + job_id=job_id, + patch_doc=patch_doc, + project_id=self.fake_project_id,) + self.assertIsNotNone(result) + self.assertEqual(result, 0) + + result = self.dbapi.get_job(project_id=self.fake_project_id, + user_id=self.fake_job_0.get('user_id'), + job_id=job_id) + self.assertIsNotNone(result) + self.assertEqual(result.get('client_id'), + self.fake_job_2.get('client_id')) + self.assertEqual(result.get('description'), + self.fake_job_2.get('description')) + self.assertEqual(result.get('job_schedule'). + get('schedule_interval'), + self.fake_job_2.get('job_schedule'). + get('schedule_interval')) + self.assertEqual(result.get('job_actions'), + self.fake_job_2.get('job_actions'))