Пример #1
0
 def test_on_get_return_correct_data(self):
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.resource.on_get(self.mock_req, self.mock_req,
                          common.fake_session_0['session_id'])
     result = self.mock_req.body
     self.assertEqual(result, common.get_fake_session_0())
     self.assertEqual(self.mock_req.status, falcon.HTTP_200)
Пример #2
0
 def test_on_get_return_correct_data(self):
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.resource.on_get(self.mock_req, self.mock_req,
                          common.fake_session_0['session_id'])
     result = self.mock_req.body
     self.assertEqual(result, common.get_fake_session_0())
     self.assertEqual(self.mock_req.status, falcon.HTTP_200)
Пример #3
0
 def test_on_get_return_correct_list(self):
     self.mock_db.search_session.return_value = [
         common.get_fake_session_0(), common.get_fake_session_1()]
     expected_result = {'sessions': [common.get_fake_session_0(),
                                     common.get_fake_session_1()]}
     self.resource.on_get(self.mock_req, self.mock_req)
     result = self.mock_req.body
     self.assertEqual(result, expected_result)
     self.assertEqual(self.mock_req.status, falcon.HTTP_200)
Пример #4
0
 def test_on_get_return_correct_list(self):
     self.mock_db.search_session.return_value = [
         common.get_fake_session_0(), common.get_fake_session_1()]
     expected_result = {'sessions': [common.get_fake_session_0(),
                                     common.get_fake_session_1()]}
     self.resource.on_get(self.mock_req, self.mock_req)
     result = self.mock_req.body
     self.assertEqual(expected_result, result)
     self.assertEqual(falcon.HTTP_200, self.mock_req.status)
Пример #5
0
 def test_create_raises_BadDataFormat_when_isvalid_fails(self, mock_uuid):
     mock_uuid.uuid4.return_value = mock_uuid
     mock_uuid.hex = 'hotforteacher'
     session_doc = common.get_fake_session_0()
     session_doc['time_started'] = 'ouch'
     self.assertRaises(exceptions.BadDataFormat, utils.SessionDoc.create,
                       session_doc, 'dude')
Пример #6
0
 def test_create_inserts_correct_uuid(self, mock_uuid):
     mock_uuid.uuid4.return_value = mock_uuid
     mock_uuid.hex = 'hotforteacher'
     session_doc = common.get_fake_session_0()
     res_doc = utils.SessionDoc.create(session_doc, 'dude')
     self.assertEqual(res_doc['user_id'], 'dude')
     self.assertEqual(res_doc['session_id'], 'hotforteacher')
Пример #7
0
 def test_on_post_inserts_correct_data(self):
     session = common.get_fake_session_0()
     self.mock_json_body.return_value = session
     self.mock_db.add_session.return_value = 'pjiofrdslaikfunr'
     expected_result = {'session_id': 'pjiofrdslaikfunr'}
     self.resource.on_post(self.mock_req, self.mock_req)
     self.assertEqual(self.mock_req.status, falcon.HTTP_201)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #8
0
 def test_on_post_raises_when_db_replace_session_raises(self):
     self.mock_db.replace_session.side_effect = exceptions.AccessForbidden(
         'regular test failure')
     session = common.get_fake_session_0()
     self.mock_json_body.return_value = session
     self.assertRaises(exceptions.AccessForbidden, self.resource.on_post,
                       self.mock_req, self.mock_req,
                       common.fake_session_0['session_id'])
Пример #9
0
 def test_on_post_inserts_correct_data(self):
     session = common.get_fake_session_0()
     self.mock_json_body.return_value = session
     self.mock_db.add_session.return_value = 'pjiofrdslaikfunr'
     expected_result = {'session_id': 'pjiofrdslaikfunr'}
     self.resource.on_post(self.mock_req, self.mock_req)
     self.assertEqual(self.mock_req.status, falcon.HTTP_201)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #10
0
 def test_on_post_raises_when_db_replace_session_raises(self):
     self.mock_db.replace_session.side_effect = exceptions.AccessForbidden(
         'regular test failure')
     session = common.get_fake_session_0()
     self.mock_json_body.return_value = session
     self.assertRaises(exceptions.AccessForbidden, self.resource.on_post,
                       self.mock_req,
                       self.mock_req,
                       common.fake_session_0['session_id'])
Пример #11
0
 def test_on_post_start_action_raises_BadDataFormat_when_curr_tag_too_high(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"start": {"job_id": 'missedme', "current_tag": 6}}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.BadDataFormat, self.resource.on_post,
                       self.mock_req, self.mock_req,
                       common.fake_session_0['session_id'])
Пример #12
0
 def setUp(self):
     super(DbSessionTestCase, self).setUp()
     self.fake_session_0 = common.get_fake_session_0()
     self.fake_project_id = self.fake_session_0.get('project_id')
     self.fake_user_id = self.fake_session_0.get('user_id')
     self.fake_session_0.pop('session_id')
     self.fake_session_2 = common.get_fake_session_2()
     self.fake_session_2.pop('session_id')
     self.fake_session_3 = common.get_fake_session_3()
     self.fake_session_3.pop('session_id')
     self.fake_session_id = common.get_fake_session_id()
Пример #13
0
 def setUp(self):
     super(ApiTestCase, self).setUp()
     self.fake_job_0 = common.get_fake_job_0()
     self.fake_client_0 = common.get_fake_client_0()
     self.fake_project_id = self.fake_job_0.get('project_id')
     self.fake_user_id = self.fake_job_0.get('user_id')
     self.fake_job_id = common.get_fake_job_id()
     self.fake_action_0 = common.get_fake_action_0()
     self.fake_backup_0 = common.get_fake_backup_metadata()
     self.fake_session_0 = common.get_fake_session_0()
     self.fake_session_id = common.get_fake_session_id()
Пример #14
0
 def setUp(self):
     super(DbSessionTestCase, self).setUp()
     self.fake_session_0 = common.get_fake_session_0()
     self.fake_user_id = self.fake_session_0.get('user_id')
     self.fake_session_0.pop('session_id')
     self.fake_session_2 = common.get_fake_session_2()
     self.fake_session_2.pop('session_id')
     self.fake_session_3 = common.get_fake_session_3()
     self.fake_session_3.pop('session_id')
     self.fake_session_id = common.get_fake_session_id()
     CONF.enable_v1_api = True
Пример #15
0
 def setUp(self):
     super(ApiTestCase, self).setUp()
     self.fake_job_0 = common.get_fake_job_0()
     self.fake_client_0 = common.get_fake_client_0()
     self.fake_user_id = self.fake_job_0.get('user_id')
     self.fake_job_id = common.get_fake_job_id()
     self.fake_action_0 = common.get_fake_action_0()
     self.fake_backup_0 = common.get_fake_backup_metadata()
     self.fake_session_0 = common.get_fake_session_0()
     self.fake_session_id = common.get_fake_session_id()
     CONF.enable_v1_api = True
Пример #16
0
    def test_on_post_start_action_ok(self):
        new_version = random.randint(0, 99)
        self.mock_db.get_session.return_value = common.get_fake_session_0()
        self.mock_db.update_session.return_value = new_version

        action = {"start": {"job_id": 'job_id_2', "current_tag": 5}}
        self.mock_json_body.return_value = action
        expected_result = {'result': 'success', 'session_tag': 6}
        self.resource.on_post(self.mock_req, self.mock_req,
                              common.fake_session_0['session_id'])
        self.assertEqual(self.mock_req.status, falcon.HTTP_202)
        self.assertEqual(self.mock_req.body, expected_result)
Пример #17
0
    def test_on_post_ok(self):
        new_version = random.randint(0, 99)
        self.mock_db.replace_session.return_value = new_version
        session = common.get_fake_session_0()
        self.mock_json_body.return_value = session
        expected_result = {'session_id': common.fake_session_0['session_id'],
                           'version': new_version}

        self.resource.on_post(self.mock_req, self.mock_req,
                              common.fake_session_0['session_id'])
        self.assertEqual(falcon.HTTP_201, self.mock_req.status)
        self.assertEqual(expected_result, self.mock_req.body)
Пример #18
0
    def test_on_post_ok(self):
        new_version = random.randint(0, 99)
        self.mock_db.replace_session.return_value = new_version
        session = common.get_fake_session_0()
        self.mock_json_body.return_value = session
        expected_result = {'session_id': common.fake_session_0['session_id'],
                           'version': new_version}

        self.resource.on_post(self.mock_req, self.mock_req,
                              common.fake_session_0['session_id'])
        self.assertEqual(self.mock_req.status, falcon.HTTP_201)
        self.assertEqual(self.mock_req.body, expected_result)
Пример #19
0
 def test_on_post_start_action_raises_BadDataFormat_when_curr_tag_too_high(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"start": {
         "job_id": 'missedme',
         "current_tag": 6
     }}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.BadDataFormat, self.resource.on_post,
                       self.mock_req,
                       self.mock_req, common.fake_session_0['session_id'])
Пример #20
0
 def test_on_post_raises_MethodNotImplemented_when_methon_not_implemented(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"method_not_implemented": {
         "job_id": 'ahahahahah',
         "current_tag": 5,
         "result": "success"
     }}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.MethodNotImplemented,
                       self.resource.on_post, self.mock_req,
                       self.mock_req, common.fake_session_0['session_id'])
Пример #21
0
 def test_on_post_end_action_raises_BadDataFormat_when_job_not_in_session(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"end": {
         "job_id": 'ahahahahah',
         "current_tag": 5,
         "result": "success"
     }}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.BadDataFormat, self.resource.on_post,
                       self.mock_req,
                       self.mock_req, common.fake_session_0['session_id'])
Пример #22
0
 def test_on_post_end_action_raises_BadDataFormat_when_job_not_in_session(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"end": {
         "job_id": 'ahahahahah',
         "current_tag": 5,
         "result": "success"
     }}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.BadDataFormat, self.resource.on_post,
                       self.mock_req,
                       self.mock_req, common.fake_session_0['session_id'])
Пример #23
0
 def test_on_post_raises_MethodNotImplemented_when_methon_not_implemented(
         self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"method_not_implemented": {
         "job_id": 'ahahahahah',
         "current_tag": 5,
         "result": "success"
     }}
     self.mock_json_body.return_value = action
     self.assertRaises(exceptions.MethodNotImplemented,
                       self.resource.on_post, self.mock_req,
                       self.mock_req, common.fake_session_0['session_id'])
Пример #24
0
 def test_on_post_start_succeeds_in_holdoff_if_tag_needs_not_increment(
         self, mock_time):
     mock_time.time.return_value = 1000
     new_version = random.randint(0, 99)
     session_doc = common.get_fake_session_0()
     session_doc['time_start'] = 999
     self.mock_db.get_session.return_value = session_doc
     self.mock_db.update_session.return_value = new_version
     action = {"start": {"job_id": 'job_id_2', "current_tag": 4}}
     self.mock_json_body.return_value = action
     expected_result = {'result': 'success', 'session_tag': 5}
     self.resource.on_post(self.mock_req, self.mock_req,
                           common.fake_session_0['session_id'])
     self.assertEqual(self.mock_req.status, falcon.HTTP_202)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #25
0
 def test_on_post_start_outofholdoff_replies_outofsync_when_tag_too_low(
         self, mock_time):
     mock_time.time.return_value = 2000
     new_version = random.randint(0, 99)
     session_doc = common.get_fake_session_0()
     session_doc['time_start'] = 999
     self.mock_db.get_session.return_value = session_doc
     self.mock_db.update_session.return_value = new_version
     action = {"start": {"job_id": 'job_id_2', "current_tag": 2}}
     self.mock_json_body.return_value = action
     expected_result = {'result': 'out-of-sync', 'session_tag': 5}
     self.resource.on_post(self.mock_req, self.mock_req,
                           common.fake_session_0['session_id'])
     self.assertEqual(self.mock_req.status, falcon.HTTP_202)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #26
0
    def test_on_delete_removes_job_from_session_jobs(self):
        session = common.get_fake_session_0()
        updated_session = common.get_fake_session_1()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        self.resource.on_delete(self.mock_req, self.mock_req,
                                session['session_id'], 'job_id_2')

        self.mock_db.replace_session.assert_called_with(
            user_id=session['user_id'],
            session_id=session['session_id'],
            doc=updated_session)
Пример #27
0
    def test_on_delete_removes_job_from_session_jobs(self):
        session = common.get_fake_session_0()
        updated_session = common.get_fake_session_1()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        self.resource.on_delete(self.mock_req, self.mock_req,
                                session['session_id'],
                                'job_id_2')

        self.mock_db.replace_session.assert_called_with(
            user_id=session['user_id'],
            session_id=session['session_id'],
            doc=updated_session)
Пример #28
0
 def test_on_post_end_action_ok(self):
     new_version = random.randint(0, 99)
     self.mock_db.get_session.return_value = common.get_fake_session_0()
     self.mock_db.update_session.return_value = new_version
     action = {"end": {
         "job_id": 'job_id_2',
         "current_tag": 5,
         "result": "success"
     }}
     self.mock_json_body.return_value = action
     expected_result = {'result': 'success',
                        'session_tag': 5}
     self.resource.on_post(self.mock_req, self.mock_req,
                           common.fake_session_0['session_id'])
     self.assertEqual(self.mock_req.status, falcon.HTTP_202)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #29
0
    def test_on_put_updates_job_with_session_info(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        job_update_doc = {
            'session_id': session['session_id'],
            'session_tag': session['session_tag'],
            'job_schedule': session['schedule']
        }

        self.resource.on_put(self.mock_req, self.mock_req,
                             session['session_id'], job['job_id'])
        self.mock_db.update_job.assert_called_with(user_id=session['user_id'],
                                                   job_id=job['job_id'],
                                                   patch_doc=job_update_doc)
Пример #30
0
 def test_on_post_start_succeeds_in_holdoff_if_tag_needs_not_increment(
         self, mock_time):
     mock_time.time.return_value = 1000
     new_version = random.randint(0, 99)
     session_doc = common.get_fake_session_0()
     session_doc['time_start'] = 999
     self.mock_db.get_session.return_value = session_doc
     self.mock_db.update_session.return_value = new_version
     action = {"start": {
         "job_id": 'job_id_2',
         "current_tag": 4
     }}
     self.mock_json_body.return_value = action
     expected_result = {'result': 'success',
                        'session_tag': 5}
     self.resource.on_post(self.mock_req, self.mock_req,
                           common.fake_session_0['session_id'])
     self.assertEqual(self.mock_req.status, falcon.HTTP_202)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #31
0
    def test_on_put_updates_job_with_session_info(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        job_update_doc = {
            'session_id': session['session_id'],
            'session_tag': session['session_tag'],
            'job_schedule': session['schedule']
        }

        self.resource.on_put(self.mock_req, self.mock_req,
                             session['session_id'],
                             job['job_id'])
        self.mock_db.update_job.assert_called_with(user_id=session['user_id'],
                                                   job_id=job['job_id'],
                                                   patch_doc=job_update_doc)
Пример #32
0
 def test_on_post_start_outofholdoff_replies_outofsync_when_tag_too_low(
         self, mock_time):
     mock_time.time.return_value = 2000
     new_version = random.randint(0, 99)
     session_doc = common.get_fake_session_0()
     session_doc['time_start'] = 999
     self.mock_db.get_session.return_value = session_doc
     self.mock_db.update_session.return_value = new_version
     action = {"start": {
         "job_id": 'job_id_2',
         "current_tag": 2
     }}
     self.mock_json_body.return_value = action
     expected_result = {'result': 'out-of-sync',
                        'session_tag': 5}
     self.resource.on_post(self.mock_req, self.mock_req,
                           common.fake_session_0['session_id'])
     self.assertEqual(self.mock_req.status, falcon.HTTP_202)
     self.assertEqual(self.mock_req.body, expected_result)
Пример #33
0
    def test_on_delete_removes_session_info_from_job_and_stops_job(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        job_update_doc = {
            'session_id': '',
            'session_tag': 0,
            'job_schedule': {
                'event': 'stop'
            }
        }

        self.resource.on_delete(self.mock_req, self.mock_req,
                                session['session_id'], job['job_id'])

        self.mock_db.update_job.assert_called_with(user_id=session['user_id'],
                                                   job_id=job['job_id'],
                                                   patch_doc=job_update_doc)
Пример #34
0
    def test_on_put_adds_job_to_session_jobs(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()
        job_info = {job['job_id']: {'client_id': job['client_id'],
                                    'status': job['job_schedule']['status'],
                                    'result': job['job_schedule']['result'],
                                    'time_started': job['job_schedule'][
                                        'time_started'],
                                    'time_ended': job['job_schedule'][
                                        'time_ended']}}
        session_update_doc = {'jobs': job_info}

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        self.resource.on_put(self.mock_req, self.mock_req,
                             session['session_id'],
                             job['job_id'])
        self.mock_db.update_session.assert_called_with(
            user_id=session['user_id'],
            session_id=session['session_id'],
            patch_doc=session_update_doc)
Пример #35
0
    def test_on_put_adds_job_to_session_jobs(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()
        job_info = {job['job_id']: {'client_id': job['client_id'],
                                    'status': job['job_schedule']['status'],
                                    'result': job['job_schedule']['result'],
                                    'time_started': job['job_schedule'][
                                        'time_started'],
                                    'time_ended': job['job_schedule'][
                                        'time_ended']}}
        session_update_doc = {'jobs': job_info}

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        self.resource.on_put(self.mock_req, self.mock_req,
                             session['session_id'],
                             job['job_id'])
        self.mock_db.update_session.assert_called_with(
            user_id=session['user_id'],
            session_id=session['session_id'],
            patch_doc=session_update_doc)
Пример #36
0
    def test_on_delete_removes_session_info_from_job_and_stops_job(self):
        session = common.get_fake_session_0()
        job = common.get_fake_job_0()

        self.mock_db.get_session.return_value = session
        self.mock_db.get_job.return_value = job

        job_update_doc = {
            'session_id': '',
            'session_tag': 0,
            'job_schedule': {
                'event': 'stop'
            }
        }

        self.resource.on_delete(self.mock_req, self.mock_req,
                                session['session_id'],
                                job['job_id'])

        self.mock_db.update_job.assert_called_with(user_id=session['user_id'],
                                                   job_id=job['job_id'],
                                                   patch_doc=job_update_doc)
Пример #37
0
 def test_validate_ok_when_data_ok(self):
     session_doc = common.get_fake_session_0()
     self.assertIsNone(utils.SessionDoc.validate(session_doc))
Пример #38
0
 def test_validate_raises_BadDataFormat_when_doc_has_no_userid(self):
     session_doc = common.get_fake_session_0()
     session_doc.pop('user_id')
     self.assertRaises(exceptions.BadDataFormat, utils.SessionDoc.validate,
                       session_doc)
Пример #39
0
 def test_validate_patch_raises_when_doc_has_invalid_field(self):
     session_doc = common.get_fake_session_0()
     session_doc['session_id'] = 44
     self.assertRaises(exceptions.BadDataFormat,
                       utils.SessionDoc.validate_patch, session_doc)
Пример #40
0
 def test_createpatch_pops_sessionid_and_userid(self):
     session_doc = common.get_fake_session_0()
     res_doc = utils.SessionDoc.create_patch(session_doc)
     self.assertFalse('session_id' in res_doc)
     self.assertFalse('user_id' in res_doc)
Пример #41
0
 def test_createpatch_raises_BadDataFormat_when_patch_has_invalid_field(
         self):
     session_doc = common.get_fake_session_0()
     session_doc['session_tag'] = 'ouch'
     self.assertRaises(exceptions.BadDataFormat,
                       utils.SessionDoc.create_patch, session_doc)