def test_show_available_products(_show_available_products):
    """ available products """
    l.drop_database()
    l.insert_to_mongo("./data/product.csv")
    l.DB_NAME = "HPNorton_PyMongo_L07"
    students_response = l.show_available_products()
    assert students_response == _show_available_products
Пример #2
0
def main(argv=None):
    """Database main function
    """
    args = parse_cmd_arguments(argv)

    if args.disable_log:
        logger.disable("__main__")
        logger.disable("src.database_operations")

    if args.all_products:
        pprint(db.list_all_products())

    elif args.available_products:
        pprint(db.show_available_products())

    elif args.all_customers:
        pprint(db.list_all_customers())

    elif args.drop_collections:
        db.drop_collections()

    elif args.drop_database:
        db.drop_database()

    elif args.rentals_for_customer:
        pprint(db.rentals_for_customer(args.rentals_for_customer))

    elif args.customers_renting_product:
        pprint(db.show_rentals(args.customers_renting_product))

    elif args.insert:
        pprint(db.import_data(*args.insert))
def test_drop_databases():
    """ Test drop HPNorton database """

    l.insert_to_mongo("./data/customers.csv")
    assert "HPNorton_PyMongo_L07" in l.MONGO.connection.list_database_names()
    l.drop_database()
    assert ("HPNorton_PyMongo_L07"
            not in l.MONGO.connection.list_database_names())
def test_rentals_for_customer(_list_rentals_for_customer):
    """ rentals for customers """
    l.drop_database()
    l.insert_to_mongo("./data/customers.csv")
    l.insert_to_mongo("./data/product.csv")
    l.insert_to_mongo("./data/rental.csv")
    my_response = l.rentals_for_customer("C000001")
    assert my_response == _list_rentals_for_customer
def test_show_rentals(_list_customers_renting_product):
    """ rentals """
    l.drop_database()
    l.insert_to_mongo("./data/customers.csv")
    l.insert_to_mongo("./data/product.csv")
    l.insert_to_mongo("./data/rental.csv")
    students_response = l.customers_renting_product("P000001")
    assert students_response == _list_customers_renting_product
def test_parallel(_linear_insert):
    """ parallel import csv """
    l.drop_database()
    results = l.parallel(
        ["./data/customers.csv", "./data/product.csv", "./data/rental.csv"])

    for result in results:
        del result[next(iter(result))]["elapsed"]

    assert _linear_insert == results
def test_drop_databases():
    """Test drop HPNorton database
    """
    l.drop_database()

    data_dir = "./data/"
    added, errors = l.import_data(data_dir, "product.csv", "customers.csv",
                                  "rental.csv")

    assert added == (10, 10, 9)
    assert errors == (0, 0, 0)

    l.drop_database()

    # If drop_database() wasn't working, the following assertions would fail.
    #   This is a sloppy test and I don't like it, works though...
    #   It's something I'd improve upon in a production environment.
    #   But time is limitied, so I choose to move on to new things to learn.

    added, errors = l.import_data(data_dir, "product.csv", "customers.csv",
                                  "rental.csv")

    assert added == (10, 10, 9)
    assert errors == (0, 0, 0)
def test_list_all_rentals(_list_all_rentals):
    """ customers """
    l.drop_database()
    l.insert_to_mongo("./data/rental.csv")
    my_response = l.list_all_rentals()
    assert my_response == _list_all_rentals
def test_list_all_products(_list_all_products):
    """ customers """
    l.drop_database()
    l.insert_to_mongo("./data/product.csv")
    my_response = l.list_all_products()
    assert my_response == _list_all_products