Example #1
0
def test_dbconn_mock_setup(dbconn):
    """
    Test mock dbconn
    """
    logger.info('Testing mock dbconn')

    with pytest.raises(sqlite3.OperationalError):
        dbconn_table_num_rows(dbconn, 'qbo_extract_accounts')
Example #2
0
def test_qec_mock_setup(qec, dbconn):
    """
    Testing Extract connector with mock instance
    """
    logger.info('Testing Extract connector with mock instance')

    qec.create_tables()
    assert dbconn_table_num_rows(dbconn,
                                 'qbo_extract_accounts') == 0, 'Unclean db'
    assert dbconn_table_num_rows(dbconn,
                                 'qbo_extract_classes') == 0, 'Unclean db'
    assert dbconn_table_num_rows(dbconn,
                                 'qbo_extract_employees') == 0, 'Unclean db'
Example #3
0
def test_qlc_mock_setup(qlc, dbconn):
    """
    Testing Load Connector with mock instance
    """
    logger.info('Testing Load Connector with mock instance')

    qlc.create_tables()
    sqlpath = './test/common/mock_db_load.sql'
    sql = open(sqlpath, 'r').read()
    dbconn.executescript(sql)

    assert dbconn_table_num_rows(dbconn, 'qbo_load_checks') == 2, 'Unclean db'
    assert dbconn_table_num_rows(dbconn,
                                 'qbo_load_check_lineitems') == 4, 'Unclean db'
Example #4
0
def test_dbconn_mock_setup(dbconn):
    """
    Testing mock dbconn
    """
    logger.info('Testing mock dbconn')

    with pytest.raises(sqlite3.OperationalError) as e:
        rows = dbconn_table_num_rows(dbconn, 'fyle_extract_employees')
Example #5
0
def test_fec_mock_setup(fec):
    """
    Testing Extract connector with mock instance
    """
    logger.info('Testing Extract connector with mock instance')

    # python magic to access private variable for testing db state
    dbconn = fec._FyleExtractConnector__dbconn
    assert dbconn_table_num_rows(dbconn,
                                 'fyle_extract_employees') == 0, 'Unclean db'
Example #6
0
def test_classes(qbo, qec, dbconn):
    """
    Test Extract Classes
    :param qbo: mock qbo sdk object
    :param qec: qbo extract connection
    :param dbconn: sqlite db connection
    :return: None
    """
    qec.create_tables()
    classes = qec.extract_classes()
    qbo_data = qbo.classes.get()[0]
    db_data = dbconn_table_row_dict(dbconn, 'qbo_extract_classes')
    assert dict_compare_keys(db_data, qbo_data) == [], 'db table has some columns that xero doesnt'
    assert dbconn_table_num_rows(dbconn, 'qbo_extract_classes') == len(qbo.classes.get()), 'row count mismatch'
    assert len(classes) == 7, 'return value messed up'
Example #7
0
def test_expenses(fec):
    """
    Test Extract Expenses
    :param fec: fyle extract connection
    :return: None
    """
    dbconn = fec._FyleExtractConnector__dbconn
    fyle = fec._FyleExtractConnector__connection
    ids = fec.extract_expenses(extract_custom_fields=False)
    fyle_data = fyle.Expenses.get_all()
    db_data = dbconn_table_row_dict(dbconn, 'fyle_extract_expenses')
    assert dict_compare_keys(
        db_data,
        fyle_data[0]) == [], 'db table has some columns that fyle doesnt'
    assert dbconn_table_num_rows(
        dbconn,
        'fyle_extract_expenses') == len(fyle_data), 'row count mismatch'
    assert len(ids) == 3, 'return value messed up'
Example #8
0
def test_projects(fec):
    """
    Test Extract Projects
    :param fec: fyle extract connection
    :return: None
    """
    dbconn = fec._FyleExtractConnector__dbconn
    fyle = fec._FyleExtractConnector__connection
    ids = fec.extract_projects()
    fyle_data = fyle.Projects.get()['data']
    db_data = dbconn_table_row_dict(dbconn, 'fyle_extract_projects')
    assert dict_compare_keys(
        db_data,
        fyle_data[0]) == [], 'db table has some columns that fyle doesnt'
    assert dbconn_table_num_rows(
        dbconn,
        'fyle_extract_projects') == len(fyle_data), 'row count mismatch'
    assert len(ids) == 4, 'return value messed up'