def test_exists(db, session):  # pylint: disable=unused-argument
    """Verify that the exists function works correctly."""
    # if there is no imei in the table
    imei_norm = '64728204390652'
    model_exists = ApprovedImeis.exists(imei_norm)
    query_exists = session.execute(text("""SELECT EXISTS(
                                             SELECT 1 FROM public.approvedimeis
                                            WHERE imei='{0}' AND removed IS NOT TRUE )""".format(imei_norm))).fetchone()
    assert query_exists[0] == model_exists

    # add a record and than check
    imei_norm = '64728204390652'
    request_id = 237654998
    status = 'status'
    delta_status = 'delta status'
    approved_imei = ApprovedImeis(imei_norm, request_id, status, delta_status)
    approved_imei.add()
    assert ApprovedImeis.exists(imei_norm)

    # set existing record's removed=True than check
    res = session.execute(text("""UPDATE public.approvedimeis
                                        SET removed=True
                                       WHERE imei='{0}' 
                                       AND request_id='{1}'""".format(imei_norm, request_id)))
    assert res
    assert not ApprovedImeis.exists(imei_norm)
def test_bulk_insert_imeis(db, session):  # pylint: disable=unused-argument
    """Verify that the bulk_insert_imeis() works as expected."""
    imei_norm1 = '67895678901234'
    imei_norm2 = '76545678906548'
    imei_norm3 = '54375699900000'
    request_id = 2376322
    status = 'status'
    delta_status = 'delta status'
    imeis = [
        ApprovedImeis(imei_norm1, request_id, status, delta_status),
        ApprovedImeis(imei_norm2, request_id, status, delta_status),
        ApprovedImeis(imei_norm3, request_id, status, delta_status)
    ]
    ApprovedImeis.bulk_insert_imeis(imeis)
    assert ApprovedImeis.exists(imei_norm1)
    assert ApprovedImeis.exists(imei_norm2)
    assert ApprovedImeis.exists(imei_norm3)