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
Exemple #3
0
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'] != []
Exemple #4
0
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'] == []
Exemple #5
0
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')