def in_progress_issue(): return Issue( key="PROJ-111", created=datetime(2020, 5, 2, 12, 4, 1), started=datetime(2020, 5, 9, 9, 1, 0), completed=None, status="In Progress", )
def completed_issue(): return Issue( key="PROJ-123", created=datetime(2020, 5, 2, 12, 4, 1), started=datetime(2020, 5, 10, 9, 1, 0), completed=datetime(2020, 5, 16, 14, 10, 30), status="Done", )
def analysis_ticket(): return Issue( key="PROJ-123", created=datetime(2020, 5, 10, 1, 2, 3), completed=datetime(2020, 5, 20, 5, 1, 2), started=datetime(2020, 5, 11, 2, 2, 2), status="Done", )
def incomplete_issue(): return Issue( key="PROJ-123", created=datetime(2020, 3, 1, 1, 4, 1), completed=None, started=datetime(2020, 4, 2, 12, 0, 12), status="In progress", )
def complete_issue(): return Issue( key="PROJ-123", created=datetime(2020, 3, 1, 1, 4, 1), completed=datetime(2020, 4, 6, 12, 0, 12), started=datetime(2020, 4, 2, 12, 0, 12), status="Done", )
def issues(): return [ Issue( key="PROJ-123", created=datetime(2020, 1, 10, 15, 1, 1), completed=datetime(2020, 5, 10, 14, 41, 10), started=datetime(2020, 4, 30, 9, 10, 11), status="Done", ), Issue( key="PROJ-111", created=datetime(2020, 1, 10, 15, 1, 1), completed=datetime(2020, 5, 10, 14, 41, 10), started=datetime(2020, 4, 30, 9, 10, 11), status="Done", ), Issue( key="PROJ-4", created=datetime(2020, 3, 10, 15, 1, 1), completed=datetime(2020, 4, 10, 14, 41, 10), started=datetime(2020, 2, 29, 9, 10, 11), status="Done", ), Issue( key="PROJ-123", created=datetime(2020, 1, 10, 15, 1, 1), completed=datetime(2020, 5, 10, 14, 41, 10), started=datetime(2020, 4, 30, 9, 10, 11), status="Done", ), Issue( key="PROJ-111", created=datetime(2020, 1, 10, 15, 1, 1), completed=datetime(2020, 5, 10, 14, 41, 10), started=datetime(2020, 4, 30, 9, 10, 11), status="Done", ), Issue( key="PROJ-4", created=datetime(2020, 3, 10, 15, 1, 1), completed=datetime(2020, 4, 10, 14, 41, 10), started=datetime(2020, 2, 29, 9, 10, 11), status="Done", ), ]
create_chart, render_func = chart generate_control_chart(issues, create_chart) assert render_func.call_count == 1 @pytest.mark.parametrize( "tickets, exception", ( pytest.param([], NoTicketsProvided, id="no-tickets"), pytest.param( [ Issue( key="PROJ-4", created=datetime(2020, 3, 10, 15, 1, 1), completed=None, started=None, status="To Do", ) ], ChartError, id="no-completed-issues", ), ), ) def test_generate_control_chart_errors(tickets, exception, chart): create_chart, render_func = chart with pytest.raises(exception): generate_control_chart(tickets, create_chart) assert not render_func.called