def test_device_section_method_documents(flask_app, db, app): """ To verify that registration section method is working properly and response is correct""" request_data = copy.deepcopy(REQUEST_DATA) request_data['file'] = 'de-reg-test-file.txt' de_registration = create_dummy_request(request_data, 'De-Registration', 'Awaiting Documents') headers = {'Content-Type': 'multipart/form-data'} documents = [ {'label': 'shipment document', 'file_name': 'shipment.pdf'}, {'label': 'authorization document', 'file_name': 'authorize.pdf'}, {'label': 'certificate document', 'file_name': 'certf.pdf'}, ] device_data = { 'devices': """[ { "tac": "35700102", "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': de_registration.id } de_registration = create_dummy_devices(device_data, 'De_Registration', de_registration, db, file_content=['121621090005119'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], de_registration.tracking_id, request_data['file'])) registration = create_dummy_documents(documents, 'De-Registration', de_registration, app) rv = flask_app.get('{0}/{1}'.format(DEVICE_DE_REGISTRATION_SECTION_API, registration.id), headers=headers) data = json.loads(rv.data.decode('utf-8')) assert rv.status_code == 200 assert 'dereg_details' in data assert data['dereg_details'] assert 'status_label' in data['dereg_details'] assert data['dereg_details']['status_label'] == 'Awaiting Documents' assert 'dereg_device' in data assert data['dereg_device'] assert 'tac' in data['dereg_device'][0] assert 'model_name' in data['dereg_device'][0] assert 'brand_name' in data['dereg_device'][0] assert 'model_num' in data['dereg_device'][0] assert 'technology' in data['dereg_device'][0] assert 'device_type' in data['dereg_device'][0] assert 'operating_system' in data['dereg_device'][0] assert 'dereg_docs' in data assert data['dereg_docs']
def test_device_section_method_documents(flask_app, db, app): # pylint: disable=unused-argument """ To verify that registration section method is working properly and response is correct""" registration = create_registration(REQUEST_DATA, uuid.uuid4()) headers = {'Content-Type': 'multipart/form-data'} device_data = { 'brand': 'samsung', 'operating_system': 'android', 'model_name': 's9', 'model_num': '30jjd', 'device_type': 'Smartphone', 'technologies': '2G,3G,4G', 'reg_id': registration.id } documents = [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] registration = create_dummy_devices(device_data, 'Registration', registration) registration = create_dummy_documents(documents, 'Registration', registration, app) rv = flask_app.get('{0}/{1}'.format(DEVICE_REGISTRATION_SECTION_API, registration.id), headers=headers) data = json.loads(rv.data.decode('utf-8')) assert rv.status_code == 200 assert 'reg_details' in data assert data['reg_details'] assert 'status_label' in data['reg_details'] assert data['reg_details']['status_label'] == 'New Request' assert 'reg_device' in data assert data['reg_device'] assert 'model_num' in data['reg_device'] assert 'technologies' in data['reg_device'] assert 'reg_docs' in data assert len(data['reg_docs']) == 3
def test_valid_invalid_imeis(flask_app, db, app): """Search by IMEI and return all result of current/reviewer user""" de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'assign-rev-user-1', 'user_name': 'assign rev user 1', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-rev', 'de reg rev') device_data = { 'devices': """[ { "tac": "35732108", "model_name": "Nokia 6", "brand_name": "Nokia", "model_num": "TA-1034", "technology": "3G,4G", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "Android" } ]""", 'dereg_id': request.id } documents = [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] request = create_dummy_devices( device_data, 'De_Registration', request, db, file_content=['357321082345123', '357321082345224'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) request = create_dummy_documents(documents, 'De-Registration', request, app) assert request request_id = request.id rv = flask_app.get( '{0}?request_id={1}&request_type=de_registration_request'.format( DOCUMENTS_API, request_id)) assert rv.status_code == 200 sql = "Update deregimei set device_id=1, imei=357321082345123, norm_imei=3573210823451 where id =1" db.session.execute(sql) sql = "Insert into deregimei(imei, norm_imei, device_id) VALUES('357321082345224', '3573210823452', 1)" db.session.execute(sql) headers = {'Content-type': 'application/json'} body_data = { "start": 1, "limit": 10, "search_specs": { "group": "reviewer", "request_type": 2, "user_id": "" }, "search_args": { "imeis": ['357321082345123', '357321082345224'] } } rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] sql = "Update deregimei set device_id=1, imei=357321082345123, norm_imei=3573210823451 where id =1" db.session.execute(sql) sql = "Insert into deregimei(imei, norm_imei, device_id) VALUES('357321082345224', '3573210823452', 1)" db.session.execute(sql) body_data["search_args"]['imeis'] = ['357321082345123'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] sql = "Update deregimei set device_id=1, imei=357321082345123, norm_imei=3573210823451 where id =1" db.session.execute(sql) sql = "Insert into deregimei(imei, norm_imei, device_id) VALUES('357321082345224', '3573210823452', 1)" db.session.execute(sql) body_data["search_specs"]['group'] = "exporter" body_data["search_specs"]['user_id'] = de_registration_data['user_id'] body_data["search_args"]['imeis'] = ['357321082345123'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] sql = "Update deregimei set device_id=1, imei=357321082345123, norm_imei=3573210823451 where id =1" db.session.execute(sql) sql = "Insert into deregimei(imei, norm_imei, device_id) VALUES('357321082345224', '3573210823452', 1)" db.session.execute(sql) body_data["search_specs"]['group'] = "exporter" body_data["search_specs"]['user_id'] = de_registration_data['user_id'] body_data["search_args"]['imeis'] = ['357321082345123'] body_data["search_args"]['brand'] = device_data['devices'][0]['brand_name'] body_data["search_args"]['model_name'] = device_data['devices'][0][ 'model_name'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] sql = "Update deregimei set device_id=1, imei=357321082345123, norm_imei=3573210823451 where id =1" db.session.execute(sql) sql = "Insert into deregimei(imei, norm_imei, device_id) VALUES('357321082345224', '3573210823452', 1)" db.session.execute(sql) body_data["search_specs"]['group'] = "exporter" body_data["search_specs"]['user_id'] = de_registration_data['user_id'] body_data["search_args"]['imeis'] = ['357321082345123', '357321082345224'] body_data["search_args"]['brand'] = device_data['devices'][0]['brand_name'] body_data["search_args"]['model_name'] = device_data['devices'][0][ 'model_name'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != []
def test_valid_invalid_date(flask_app, db, app): """Search by date and return all result of current user and empty search result""" de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'assign-rev-user-1', 'user_name': 'assign rev user 1', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-rev', 'de reg rev') device_data = { 'devices': """[ { "tac": "35732108", "model_name": "Nokia 6", "brand_name": "Nokia", "model_num": "TA-1034", "technology": "3G,4G", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "Android" } ]""", 'dereg_id': request.id } documents = [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] request = create_dummy_devices( device_data, 'De_Registration', request, db, file_content=['357321082345123', '357321082345124'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) request = create_dummy_documents(documents, 'De-Registration', request, app) assert request request_id = request.id rv = flask_app.get( '{0}?request_id={1}&request_type=de_registration_request'.format( DOCUMENTS_API, request_id)) assert rv.status_code == 200 headers = {'Content-type': 'application/json'} body_data = { "start": 1, "limit": 10, "search_specs": { "group": "exporter", "request_type": 2, "user_id": "assign-rev-user-1" }, "search_args": {} } # Valid Date Check body_data['search_args']['created_at'] = \ request.created_at.strftime("%Y-%m-%d") + ',' + request.created_at.strftime("%Y-%m-%d") rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] body_data['search_args'] = {} body_data['search_args']['created_at'] = request.created_at.strftime( "%Y-%m-%d") + ',' + request.created_at.strftime("%Y-%m-%d") body_data['search_args']['updated_at'] = request.updated_at.strftime( "%Y-%m-%d") + ',' + request.updated_at.strftime("%Y-%m-%d") rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] # InValid Date Check body_data['search_args'] = {} body_data['search_args']['created_at'] = '2020-12-11' + ',' + '2018-12-11' rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] == []
def test_technologies(flask_app, db, app): """Validate technologies input search parameter and respond with positive result and status code.""" de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'assign-rev-user-1', 'user_name': 'assign rev user 1', 'reason': 'because we have to run tests successfully' } request = create_assigned_dummy_request(de_registration_data, 'De_Registration', 'dereg-rev', 'de reg rev') device_data = { 'devices': """[ { "tac": "35732108", "model_name": "Nokia 6", "brand_name": "Nokia", "model_num": "TA-1034", "technology": "3G,4G", "device_type": "Mobile Phone/Feature phone", "count": 2, "operating_system": "Android" } ]""", 'dereg_id': request.id } documents = [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] request = create_dummy_devices( device_data, 'De_Registration', request, db, file_content=['357321082345123', '357321082345124'], file_path='{0}/{1}/{2}'.format(app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) request = create_dummy_documents(documents, 'De-Registration', request, app) assert request request_id = request.id rv = flask_app.get( '{0}?request_id={1}&request_type=de_registration_request'.format( DOCUMENTS_API, request_id)) assert rv.status_code == 200 headers = {'Content-type': 'application/json'} body_data = { "start": 1, "limit": 10, "search_specs": { "group": "reviewer", "request_type": 2, "user_id": "" }, "search_args": { 'technologies': ["3G"] } } rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] body_data['search_args']['technologies'] = ['3G', '4G'] body_data["search_args"]['brand'] = device_data['devices'][0]['brand_name'] body_data["search_args"]['model_name'] = device_data['devices'][0][ 'model_name'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != [] body_data['search_args']['technologies'] = ['3G'] body_data["search_args"]['brand'] = device_data['devices'][0]['brand_name'] body_data["search_args"]['model_name'] = device_data['devices'][0][ 'model_name'] rv = flask_app.post(SEARCH_API, data=json.dumps(body_data), headers=headers) assert rv.status_code == 200 result = json.loads(rv.data.decode('utf-8')) assert result['requests'] != []
def test_document_api(flask_app, app, db): """Verify that the api responds with correct path and file name of a document.""" # registration request data = { 'registration': { 'device_count': 2, 'imei_per_device': 1, 'imeis': "[['86834403015010', '868344039012345']]", 'm_location': 'local', 'user_name': 'imei stat user 1', 'user_id': 'imei-stat-user-1' }, 'devices': { 'brand': 'samsung', 'operating_system': 'android', 'model_name': 's9', 'model_num': '30jjd', 'device_type': 'Smartphone', 'technologies': '2G,3G,4G' }, 'documents': [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] } request = create_dummy_request(data.get('registration'), 'Registration') request = create_dummy_devices(data.get('devices'), 'Registration', request) request = create_dummy_documents(data.get('documents'), 'Registration', request, app) assert request request_id = request.id rv = flask_app.get( '{0}?request_id={1}&request_type=registration_request'.format( DOCUMENTS_API, request_id)) assert rv.status_code == 200 data = json.loads(rv.data.decode('utf-8'))['documents'] for document in data: assert document.get('document_type') in [ 'shipment document', 'authorization document', 'certificate document' ] assert document.get('link') # de registration de_registration_data = { 'file': 'de-reg-test-file.txt', 'device_count': 1, 'user_id': 'imei-stat-user-2', 'user_name': 'assign rev user 1', 'reason': 'because we have to run tests successfully' } request = create_dummy_request(de_registration_data, 'De_Registration') device_data = { 'devices': """[ { "tac": "35732108", "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 } documents = [ { 'label': 'shipment document', 'file_name': 'shipment.pdf' }, { 'label': 'authorization document', 'file_name': 'authorize.pdf' }, { 'label': 'certificate document', 'file_name': 'certf.pdf' }, ] request = create_dummy_devices(device_data, 'De_Registration', request, db, file_content=['357321082345123'], file_path='{0}/{1}/{2}'.format( app.config['DRS_UPLOADS'], request.tracking_id, de_registration_data.get('file'))) request = create_dummy_documents(documents, 'De-Registration', request, app) assert request request_id = request.id rv = flask_app.get( '{0}?request_id={1}&request_type=de_registration_request'.format( DOCUMENTS_API, request_id)) assert rv.status_code == 200 data = json.loads(rv.data.decode('utf-8'))['documents'] for document in data: assert document.get('document_type') in [ 'shipment document', 'authorization document', 'certificate document' ] assert document.get('link')