def test_project_not_existing_error(self, mockdate_tuesday): with pytest.raises(ProjectNameDoesNotExistError): # TODO: when ProjectCommand moves to use argument splitter method # or class instead, change to passing a string since the below is # error prone. pc = ProjectCommand(Calendar(), mockdate_tuesday, ["project", "EPG Support", "9"]) pc.execute()
def test_report_time_short_form_ambiguity(self, mockdate_tuesday): calendar = Calendar() pc = ProjectCommand(calendar, mockdate_tuesday, ["project", "new", "EPG Support"]) calendar, view = pc.execute() pc = ProjectCommand(calendar, mockdate_tuesday, ["project", "new", "EPG Maintenance"]) calendar, view = pc.execute() with pytest.raises(AmbiguousProjectNameError): pc = ProjectCommand(calendar, mockdate_tuesday, "project EP 9".split()) pc.execute()
def test_project_starting_with_a_digit(self, mockdate_tuesday, project_calendar): calendar = project_calendar.add_project("2Hello") pc = ProjectCommand(calendar, mockdate_tuesday, "project 2 8".split()) with pytest.raises(AmbiguousProjectNumberError): pc.execute()
def test_project_number_0_not_existing(self, mockdate_tuesday): calendar = Calendar() pc = ProjectCommand(calendar, mockdate_tuesday, "project 0 8".split()) with pytest.raises(InvalidProjectNumberError): pc.execute()
def test_other_project(self, mockdate_tuesday, project_calendar): pc = ProjectCommand(project_calendar, mockdate_tuesday, "project 2 " "8".split()) calendar, view = pc.execute() assert "08:00" in view.show(calendar)
def test_default_project(self, mockdate_tuesday, project_calendar): pc = ProjectCommand(project_calendar, mockdate_tuesday, "project 1 " "8".split()) with pytest.raises(CannotReportOnDefaultProjectError): pc.execute()
def test_unexpected_option_reporting_number_error(self, mockdate_tuesday): with pytest.raises(UnexpectedOptionError): pc = ProjectCommand(Calendar(), mockdate_tuesday, "project 1 2 7".split()) pc.execute()
def test_unexpected_option_creating_new_error(self, mockdate_tuesday): with pytest.raises(UnexpectedOptionError): pc = ProjectCommand(Calendar(), mockdate_tuesday, "project new Hello World".split()) pc.execute()
def test_new_project_without_name_raises_error(self, mockdate_tuesday): with pytest.raises(NoProjectNameError): pc = ProjectCommand(Calendar(), mockdate_tuesday, "project new".split()) pc.execute()
def test_invalid_time_no_time(self, mockdate_tuesday, project_calendar): pc = ProjectCommand(project_calendar, mockdate_tuesday, "project " "2".split()) with pytest.raises(InvalidTimeError) as e: pc.execute() assert '""' in str(e.value)
def test_show_digits_before_projects(self, mockdate_tuesday, project_calendar): pc = ProjectCommand(project_calendar, mockdate_tuesday, "project 2 " "8".split()) calendar, view = pc.execute() assert "2. Hello" in view.show(calendar)