test_empty_list_says_nothing_to_buy (test_shopping_list.BuildReportTests.test_empty_list_says_nothing_to_buy) ... ok test_item_at_or_above_target_is_omitted (test_shopping_list.BuildReportTests.test_item_at_or_above_target_is_omitted) ... ok test_ordered_closest_to_target_first (test_shopping_list.BuildReportTests.test_ordered_closest_to_target_first) ... ok test_reports_the_corrected_target_of_six (test_shopping_list.BuildReportTests.test_reports_the_corrected_target_of_six) ... ok test_cli_missing_pantry_reports_error (test_shopping_list.CommandLineTests.test_cli_missing_pantry_reports_error) ... ok test_cli_reports_negative_quantity_and_keeps_last_report (test_shopping_list.CommandLineTests.test_cli_reports_negative_quantity_and_keeps_last_report) ... ok test_cli_writes_report_and_exits_zero (test_shopping_list.CommandLineTests.test_cli_writes_report_and_exits_zero) ... ok test_invalid_input_preserves_last_good_report (test_shopping_list.GenerateTests.test_invalid_input_preserves_last_good_report) ... ok test_writes_shopping_md (test_shopping_list.GenerateTests.test_writes_shopping_md) ... ok test_reads_items_and_quantities (test_shopping_list.ReadPantryTests.test_reads_items_and_quantities) ... ok test_rejects_negative_quantity_with_clear_error (test_shopping_list.ReadPantryTests.test_rejects_negative_quantity_with_clear_error) ... ok test_rejects_non_integer_quantity (test_shopping_list.ReadPantryTests.test_rejects_non_integer_quantity) ... ok test_rejects_wrong_header (test_shopping_list.ReadPantryTests.test_rejects_wrong_header) ... ok ---------------------------------------------------------------------- Ran 13 tests in 0.586s OK