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)
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)
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)
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)
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')
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')
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)
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'])
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)
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'])
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'])
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()
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()
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
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
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)
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)
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)
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'])
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'])
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'])
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'])
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'])
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
def test_validate_ok_when_data_ok(self): session_doc = common.get_fake_session_0() self.assertIsNone(utils.SessionDoc.validate(session_doc))
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)
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)
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)
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)