def test_de_registration_request_none_status_section(flask_app, db, app): """Verify that if any status is none the the system does not allow submission and api responds accordingly. """ headers = {'Content-Type': 'application/json'} de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'dereg-req-approve-rev-user-13', 'user_name': 'dereg req approve rev user 13', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-req-approve-rev-user-13', 'dereg req approve rev user 13') device_data = { 'devices': """[ { "tac": "12111119", "model_name": "TA-1034", "brand_name": "NOKIA", "model_num": "TA-1034", "technology": "NONE", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "N/A" } ]""", 'dereg_id': request.id } request = create_dummy_devices(device_data, 'De_Registration', request, db, file_content=['121111191115009'], file_path='{0}/{1}/{2}'.format( app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) assert request request_id = request.id DeRegComments.add('device_description', 'test comment on section', 'dereg-req-approve-rev-user-13', 'dereg req approve rev user 13', 6, request_id) body_data = { 'request_id': request_id, 'request_type': 'de_registration_request', 'reviewer_id': 'dereg-req-approve-rev-user-13' } rv = flask_app.put(SUBMIT_REVIEW_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 400 response = json.loads(rv.data.decode('utf-8')) assert response['error'] == [ 'unable to update case {0}, complete the review process'.format( request_id) ]
def add_comment(cls, section, comment, user_id, user_name, status, request_id): """Method to add comment on request.""" request = cls.get_by_id(request_id) DeRegComments.add(section, comment, user_id, user_name, status, request.id) try: db.session.add(request) db.session.commit() except Exception: db.session.rollback() raise Exception
def test_de_registration_request_rejected_section(flask_app, db, app): """Verify that the de_registration request gets rejected when anyone of the section is marked as rejected, imeis are removed from approvedimeis and notification is being generated. """ # de registration request headers = {'Content-Type': 'application/json'} de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'dereg-section-submit-assign-rev-user-1', 'user_name': 'submit assign rev user 1', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-rejected-section-rev', 'de reg rev') device_data = { 'devices': """[ { "tac": "95762201", "model_name": "TA-1034", "brand_name": "NOKIA", "model_num": "TA-1034", "technology": "NONE", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "N/A" } ]""", 'dereg_id': request.id } request = create_dummy_devices(device_data, 'De_Registration', request, db, file_content=['957622010005119'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) assert request request_id = request.id DeRegComments.add('device_description', 'test comment on section', 'dereg-rejected-section-rev', 'rev 230987', 7, request_id) body_data = { 'request_id': request_id, 'request_type': 'de_registration_request', 'reviewer_id': 'dereg-rejected-section-rev' } rv = flask_app.put(SUBMIT_REVIEW_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 201 response = json.loads(rv.data.decode('utf-8')) assert response['status'] == 7 assert response['request_id'] == request_id assert response['message'] == 'case {0} updated successfully'.format(request_id) assert response['request_type'] == 'de_registration_request' assert Notification.exist_users('dereg-section-submit-assign-rev-user-1')
def get_section_by_state(cls, request_id, section_type): """Method to return most recent state of a section.""" request = DeRegDetails.get_by_id(request_id) section_data = DeRegComments.get_all_by_section_type( request.id, section_type) if len(section_data) > 0: section_status = section_data[0].status section_type = section_type comments = [] for sec in section_data: comment = { 'user_id': sec.user_id, 'user_name': sec.user_name, 'comment': sec.comment, 'datetime': sec.added_at } comments.append(comment) return { 'section_type': section_type, 'section_status': section_status, 'comments': comments } else: return { 'section_type': section_type, 'section_status': None, 'comments': None }
def test_de_registration_request_info_requested(flask_app, db, app): """Verify that the system mark the request as information requested even when only one of the sections is marked as information requested. """ headers = {'Content-Type': 'application/json'} de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'dereg-req-approve-rev-user-12', 'user_name': 'dereg req approve rev user 12', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-req-approve-rev-user-12', 'dereg req approve rev user 12') device_data = { 'devices': """[ { "tac": "12000009", "model_name": "TA-1034", "brand_name": "NOKIA", "model_num": "TA-1034", "technology": "NONE", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "N/A" } ]""", 'dereg_id': request.id } request = create_dummy_devices(device_data, 'De_Registration', request, db, file_content=['120000091115009'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) assert request request_id = request.id DeRegComments.add('device_description', 'test comment on section', 'dereg-req-approve-rev-user-12', 'dereg req approve rev user 12', 6, request_id) DeRegComments.add('imei_classification', 'test comment on section', 'dereg-req-approve-rev-user-12', 'dereg req approve rev user 12', 5, request_id) DeRegComments.add('imei_registration', 'test comment on section', 'dereg-req-approve-rev-user-12', 'dereg req approve rev user 12', 6, request_id) DeRegComments.add('approval_documents', 'test comment on section', 'dereg-req-approve-rev-user-12', 'dereg req approve rev user 12', 6, request_id) body_data = { 'request_id': request_id, 'request_type': 'de_registration_request', 'reviewer_id': 'dereg-req-approve-rev-user-12' } rv = flask_app.put(SUBMIT_REVIEW_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 201 response = json.loads(rv.data.decode('utf-8')) assert response['request_id'] == request_id assert response['status'] == 5
def test_de_registration_request_approval(flask_app, db, app): """Verify that the system approves the request when all the sections are approved and de-register imeis successfully. """ headers = {'Content-Type': 'application/json'} data = { 'device_count': 1, 'imei_per_device': 1, 'imeis': "[['121621090005119']]", 'm_location': 'local', 'user_name': 'reg req approve rev user 9', 'user_id': 'reg-req-approve-rev-user-9' } request = create_assigned_dummy_request(data, 'Registration', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10') assert request request_id = request.id user_id = request.user_id device_data = { 'brand': 'samsung', 'operating_system': 'android', 'model_name': 's9', 'model_num': '30jjd', 'device_type': 'Smartphone', 'technologies': '2G,3G,4G', 'reg_id': request_id } request = create_dummy_devices(device_data, 'Registration', request) assert request # create user quota quota = DeviceQuota.create(user_id, 'individual') assert quota de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'dereg-req-approve-rev-user-10', 'user_name': 'dereg req approve rev user 10', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10') device_data = { 'devices': """[ { "tac": "12162109", "model_name": "TA-1034", "brand_name": "NOKIA", "model_num": "TA-1034", "technology": "NONE", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "N/A" } ]""", 'dereg_id': request.id } request = create_dummy_devices(device_data, 'De_Registration', request, db, file_content=['121621090005119'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) assert request request_id = request.id # add imei to approvedimeis as whitelist to de register approved_imei = ApprovedImeis.get_imei('12162109000511') approved_imei.status = 'whitelist' approved_imei.delta_status = 'update' ApprovedImeis.bulk_insert_imeis([approved_imei]) DeRegComments.add('device_description', 'test comment on section', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10', 6, request_id) DeRegComments.add('imei_classification', 'test comment on section', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10', 6, request_id) DeRegComments.add('imei_registration', 'test comment on section', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10', 6, request_id) DeRegComments.add('approval_documents', 'test comment on section', 'dereg-req-approve-rev-user-10', 'dereg req approve rev user 10', 6, request_id) body_data = { 'request_id': request_id, 'request_type': 'de_registration_request', 'reviewer_id': 'dereg-req-approve-rev-user-10' } rv = flask_app.put(SUBMIT_REVIEW_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 201 response = json.loads(rv.data.decode('utf-8')) imei = ApprovedImeis.get_imei('12162109000511') assert response['request_type'] == 'de_registration_request' assert response['status'] == 6 assert response['request_id'] == request_id assert imei.status == 'removed'