def test_get_document_by_id(session):
    """Verify that the get_document_by_id returns a document provided an id."""
    docs = [
        Documents(id=1110, label='shp doc', type=1, required=True),
        Documents(id=2110, label='ath doc', type=1, required=True)
    ]
    session.bulk_save_objects(docs)
    session.commit()
    assert Documents.get_document_by_id(1110)
    assert Documents.get_document_by_id(2110)
    assert Documents.get_document_by_id(79897777879) is None
def test_get_document_by_name(session):
    """Verify that the get_document_by_name() returns a document provided the name."""
    docs = [
        Documents(id=11101, label='shp doc', type=1, required=True),
        Documents(id=21102, label='ath doc', type=2, required=True)
    ]
    session.bulk_save_objects(docs)
    session.commit()
    assert Documents.get_document_by_name('shp doc', 1)
    assert Documents.get_document_by_name('ath doc', 2)
    assert Documents.get_document_by_name('88668', 1) is None
def test_get_label_by_id(session):
    """Verify that the get_label_by_id() returns correct document label when id is provided."""
    docs = [
        Documents(id=111, label='shp doc', type=1, required=True),
        Documents(id=211, label='ath doc', type=1, required=True)
    ]
    session.bulk_save_objects(docs)
    session.commit()
    assert Documents.get_label_by_id(111) == 'shp doc'
    assert Documents.get_label_by_id(211) == 'ath doc'
    assert Documents.get_label_by_id(2334242323322) is None
def test_required_docs(session):
    """Verify that the required_docs() only returns docs for which the required flag is true."""
    docs = [
        Documents(id=111010034, label='shp doc', type=1, required=True),
        Documents(id=211020045, label='ath doc', type=1, required=False),
        Documents(id=111010056, label='shp doc', type=2, required=True),
        Documents(id=211020067, label='ath doc', type=2, required=True)
    ]
    session.bulk_save_objects(docs)
    session.commit()
    docs = Documents.get_required_docs('registration')
    for doc in docs:
        assert doc.required
    docs = Documents.get_required_docs('avdd')
    for doc in docs:
        assert doc.required
def test_get_documents(session):
    """Verify that the get_documents() returns all the documents of same type."""
    docs = [
        Documents(id=11101003, label='shp doc', type=1, required=True),
        Documents(id=21102004, label='ath doc', type=1, required=True),
        Documents(id=11101005, label='shp doc', type=2, required=True),
        Documents(id=21102006, label='ath doc', type=2, required=True)
    ]
    session.bulk_save_objects(docs)
    session.commit()
    docs_1 = Documents.get_documents('registration')
    assert docs_1
    for doc in docs_1:
        assert doc.type == 1

    docs_2 = Documents.get_documents('avddd')
    assert docs_1
    for doc in docs_2:
        assert doc.type == 2