示例#1
0
def test_patient_filter(_db):
    patients = [{
        "firstName": "Rick",
        "lastName": "Deckard",
        "dateOfBirth": "2094-02-01",
        "externalId": "5"
    }, {
        "firstName": "Pris",
        "lastName": "Stratton",
        "dateOfBirth": "2093-12-20",
        "externalId": "4"
    }, {
        "firstName": "Roy",
        "lastName": "Batti",
        "dateOfBirth": "2093-06-12",
        "externalId": "8"
    }]
    payments = [{
        "amount": 10,
        "patientId": "1",
        "externalId": "501"
    }, {
        "amount": 10,
        "patientId": "1",
        "externalId": "502"
    }, {
        "amount": 10,
        "patientId": "2",
        "externalId": "503"
    }]
    for p in patients:
        _db.session.add(Patient.from_json(p))
    for p in payments:
        _db.session.add(Payment.from_json(p))
    _db.session.commit()
    q0 = Patient.query.filter(Patient.payments_sum > 15).all()
    assert len(q0) == 1
    assert q0[0].first_name == "Rick"
    q1 = Patient.query.filter(Patient.payments_sum < 15).filter(
        Patient.payments_sum > 5).all()
    assert len(q1) == 1
    assert q1[0].first_name == "Pris"
    q2 = Patient.query.filter(Patient.payments_sum < 5).all()
    assert len(q2) == 1
    assert q2[0].first_name == "Roy"
示例#2
0
def test_unique_external(_db):
    pay_json = {"amount": 4.46, "patientId": "5", "externalId": "501"}
    for _ in range(2):
        _db.session.add(Payment.from_json(copy.copy(pay_json)))
    with pytest.raises(sqlalchemy.exc.IntegrityError) as excinfo:
        _db.session.commit()
        assert 'UNIQUE constraint failed: payments.external_id' in excinfo.value.message
    _db.session.rollback()

    pat_json = {
        "firstName": "Rick",
        "lastName": "Deckard",
        "dateOfBirth": "2094-02-01",
        "externalId": "5"
    }
    for _ in range(2):
        _db.session.add(Patient.from_json(copy.copy(pat_json)))
    with pytest.raises(sqlalchemy.exc.IntegrityError) as excinfo:
        _db.session.commit()
        assert 'UNIQUE constraint failed: patients.external_id' in excinfo.value.message
示例#3
0
def test_payments(_db):
    now = datetime.datetime.utcnow()
    pay = Payment.from_json({
        "amount": 4.46,
        "patientId": "5",
        "externalId": "501"
    })
    assert pay.id is None
    _db.session.add(pay)
    _db.session.commit()
    assert pay.id > 0
    assert pay.created >= now
    assert pay.created == pay.updated

    mod_time = datetime.datetime.utcnow()
    pay.amount += 1.0
    _db.session.commit()
    assert pay.updated >= mod_time

    assert pay.to_json() == {
        "amount": 5.46,
        "patientId": "5",
        "externalId": "501"
    }