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
Пример #3
0
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
            }
Пример #5
0
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
Пример #6
0
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'