Example #1
0
def test_post_mine_type_detail_commodity_and_disturbance(
        test_client, db_session, auth_headers):
    mine_type = MineTypeFactory(mine_type_detail={
        'commodities': 0,
        'disturbances': 0
    })

    test_data = {
        'mine_type_guid':
        str(mine_type.mine_type_guid),
        'mine_disturbance_code':
        SampleMineDisturbanceCodes(mine_type.mine_tenure_type_code, 1)[0],
        'mine_commodity_code':
        SampleMineCommodityCodes(mine_type.mine_tenure_type_code, 1)[0]
    }
    post_resp = test_client.post('/mines/mine-types/details',
                                 data=test_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 400
    assert post_data == {
        'error': {
            'status':
            400,
            'message':
            'Error: Unable to create mine_type_detail with disturbance and commodity.'
        }
    }
Example #2
0
def test_post_mine_disturbance_duplicate(test_client, db_session,
                                         auth_headers):
    mine_type = MineTypeFactory(mine_type_detail={
        'commodities': 0,
        'disturbances': 0
    })
    disturb = SampleMineDisturbanceCodes(mine_type.mine_tenure_type_code, 1)[0]

    test_mine_type_data = {
        'mine_type_guid': str(mine_type.mine_type_guid),
        'mine_disturbance_code': disturb
    }
    post_resp1 = test_client.post('/mines/mine-types/details',
                                  data=test_mine_type_data,
                                  headers=auth_headers['full_auth_header'])
    post_data1 = json.loads(post_resp1.data.decode())
    assert post_resp1.status_code == 200
    assert post_data1['mine_type_guid'] == str(mine_type.mine_type_guid)
    assert post_data1['mine_disturbance_code'] == disturb

    post_resp2 = test_client.post('/mines/mine-types/details',
                                  data=test_mine_type_data,
                                  headers=auth_headers['full_auth_header'])
    post_data2 = json.loads(post_resp2.data.decode())
    assert post_resp2.status_code == 500
Example #3
0
def test_delete_mine_type_detail_success(test_client, db_session,
                                         auth_headers):
    mine_type = MineTypeFactory()
    detail_guid = mine_type.mine_type_detail[0].mine_type_detail_xref_guid

    delete_resp = test_client.delete(
        f'/mines/mine-types/details/{detail_guid}',
        headers=auth_headers['full_auth_header'])
    delete_data = json.loads(delete_resp.data.decode())
    assert delete_resp.status_code == 200
    assert delete_data['mine_type_detail_guid'] == str(detail_guid)
Example #4
0
def test_post_mine_commodity_success(test_client, db_session, auth_headers):
    mine_type = MineTypeFactory(mine_type_detail={
        'commodities': 0,
        'disturbances': 0
    })
    commodity = SampleMineCommodityCodes(mine_type.mine_tenure_type_code, 1)[0]

    test_data = {
        'mine_type_guid': str(mine_type.mine_type_guid),
        'mine_commodity_code': commodity
    }
    post_resp = test_client.post('/mines/mine-types/details',
                                 data=test_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 200
    assert post_data['mine_type_guid'] == str(mine_type.mine_type_guid)
    assert post_data['mine_disturbance_code'] == None
    assert post_data['mine_commodity_code'] == commodity
Example #5
0
def test_post_mine_type_detail_invalid_mine_commdity_code(
        test_client, db_session, auth_headers):
    mine_guid = MineFactory(mine_type=None).mine_guid
    mine_type = MineTypeFactory(mine_tenure_type_code='MIN',
                                mine_type_detail={
                                    'commodities': 0,
                                    'disturbances': 0
                                })
    #make mine_type with cole but commodity only valid with Mineral
    test_mine_type_data = {
        'mine_tenure_type_code':
        'COL',
        'mine_commodity_code':
        SampleMineCommodityCodes(mine_type.mine_tenure_type, 1)[0]
    }
    post_resp = test_client.post(f'/mines/{mine_guid}/mine-types',
                                 json=test_mine_type_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 400
    assert post_data['message'] is not None
Example #6
0
def test_post_mine_type_detail_invalid_mine_commdity_code(
        test_client, db_session, auth_headers):
    mine_type = MineTypeFactory(mine_type_detail={
        'commodities': 0,
        'disturbances': 0
    })

    test_mine_type_data = {
        'mine_type_guid': str(mine_type.mine_type_guid),
        'mine_commodity_code': 'ABC'
    }
    post_resp = test_client.post('/mines/mine-types/details',
                                 data=test_mine_type_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 400
    assert post_data == {
        'error': {
            'status': 400,
            'message': 'Error: Invalid mine_commodity_code.'
        }
    }
Example #7
0
def test_post_mine_disturbance_success(test_client, db_session, auth_headers):

    mine_type = MineTypeFactory(mine_type_detail={
        'commodities': 0,
        'disturbances': 0
    })
    disturb = SampleMineDisturbanceCodes(mine_type.mine_tenure_type, 1)
    mine = MineFactory(mine_type=None)

    test_data = {
        'mine_tenure_type_code': mine_type.mine_tenure_type_code,
        'mine_disturbance_code': disturb
    }
    post_resp = test_client.post(f'/mines/{mine.mine_guid}/mine-types',
                                 json=test_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 200, post_resp.response
    assert post_data['mine_tenure_type_code'] == test_data[
        'mine_tenure_type_code']
    assert post_data['mine_type_detail'][0][
        'mine_disturbance_code'] == disturb[0]
    assert post_data['mine_type_detail'][0]['mine_commodity_code'] == None
Example #8
0
def test_post_many_commodity_success(test_client, db_session, auth_headers):
    mine_type = MineTypeFactory(mine_tenure_type_code='MIN',
                                mine_type_detail={
                                    'commodities': 0,
                                    'disturbances': 0
                                })
    num_commodities = 10
    mine = MineFactory(mine_type=None)
    print(mine_type.mine_tenure_type.mine_commodity_codes)
    commodities = SampleMineCommodityCodes(mine_type.mine_tenure_type,
                                           num_commodities)

    test_data = {
        'mine_tenure_type_code': 'MIN',
        'mine_commodity_code': commodities
    }
    post_resp = test_client.post(f'/mines/{mine.mine_guid}/mine-types',
                                 json=test_data,
                                 headers=auth_headers['full_auth_header'])
    post_data = json.loads(post_resp.data.decode())
    assert post_resp.status_code == 200, post_resp.response
    assert len(post_data['mine_type_detail']) == num_commodities
    assert all(mtd['mine_commodity_code'] is not None
               for mtd in post_data['mine_type_detail'])