def test_valid_import(self):
        product_file = ProductsExcelImporter("virtual_file.xlsx")
        assert product_file.is_valid_file() is False

        product_file.verify_file()
        assert product_file.is_valid_file() is True

        product_file.import_to_database()
        assert product_file.amount_of_products == 2
        assert Product.objects.count() == 2

        p = Product.objects.get(product_id="Product A")
        assert p.description == "description of Product A"
        assert p.list_price == 4000.0
        assert p.currency == "USD"
        assert p.vendor == Vendor.objects.get(id=1)
        assert p.eox_update_time_stamp == datetime.date(2016, 1, 1)
        assert p.eol_ext_announcement_date == datetime.date(2016, 1, 2)
        assert p.end_of_sale_date == datetime.date(2016, 1, 3)
        assert p.end_of_new_service_attachment_date == datetime.date(
            2016, 1, 4)
        assert p.end_of_sw_maintenance_date == datetime.date(2016, 1, 5)
        assert p.end_of_routine_failure_analysis == datetime.date(2016, 1, 6)
        assert p.end_of_service_contract_renewal == datetime.date(2016, 1, 7)
        assert p.end_of_support_date == datetime.date(2016, 1, 8)
        assert p.end_of_sec_vuln_supp_date == datetime.date(2016, 1, 9)
        assert p.internal_product_id == "12345"
        assert p.tags == "chassis"

        p = Product.objects.get(product_id="Product B")
        assert p.description == "description of Product B"
        assert p.list_price == 6000.0
        assert p.currency == "USD"
        assert p.vendor == Vendor.objects.get(id=1)
        assert p.eox_update_time_stamp is None
        assert p.eol_ext_announcement_date is None
        assert p.end_of_sale_date is None
        assert p.end_of_new_service_attachment_date is None
        assert p.end_of_sw_maintenance_date is None
        assert p.end_of_routine_failure_analysis is None
        assert p.end_of_service_contract_renewal is None
        assert p.end_of_support_date is None
        assert p.end_of_sec_vuln_supp_date is None
        assert p.internal_product_id == ""
        assert p.tags == ""
    def test_valid_import(self):
        product_file = ProductsExcelImporter("virtual_file.xlsx")
        assert product_file.is_valid_file() is False

        product_file.verify_file()
        assert product_file.is_valid_file() is True

        product_file.import_to_database()
        assert product_file.amount_of_products == 2
        assert Product.objects.count() == 2

        p = Product.objects.get(product_id="Product A")
        assert p.description == "description of Product A"
        assert p.list_price == 4000.0
        assert p.currency == "USD"
        assert p.vendor == Vendor.objects.get(id=1)
        assert p.eox_update_time_stamp == datetime.date(2016, 1, 1)
        assert p.eol_ext_announcement_date == datetime.date(2016, 1, 2)
        assert p.end_of_sale_date == datetime.date(2016, 1, 3)
        assert p.end_of_new_service_attachment_date == datetime.date(2016, 1, 4)
        assert p.end_of_sw_maintenance_date == datetime.date(2016, 1, 5)
        assert p.end_of_routine_failure_analysis == datetime.date(2016, 1, 6)
        assert p.end_of_service_contract_renewal == datetime.date(2016, 1, 7)
        assert p.end_of_support_date == datetime.date(2016, 1, 8)
        assert p.end_of_sec_vuln_supp_date == datetime.date(2016, 1, 9)

        p = Product.objects.get(product_id="Product B")
        assert p.description == "description of Product B"
        assert p.list_price == 6000.0
        assert p.currency == "USD"
        assert p.vendor == Vendor.objects.get(id=1)
        assert p.eox_update_time_stamp is None
        assert p.eol_ext_announcement_date is None
        assert p.end_of_sale_date is None
        assert p.end_of_new_service_attachment_date is None
        assert p.end_of_sw_maintenance_date is None
        assert p.end_of_routine_failure_analysis is None
        assert p.end_of_service_contract_renewal is None
        assert p.end_of_support_date is None
        assert p.end_of_sec_vuln_supp_date is None