def teams(app) -> List[Team]:
    # Two departments, four teams
    # Department 1 has 3 teams
    # Department 2 has 1 team
    department1 = Team(parent_team=None,
                       code="department1",
                       name="Department 1")
    department2 = Team(parent_team=None,
                       code="department2",
                       name="Department 2")

    department1.sub_teams = [
        Team(code="11", name="Team 11"),
        Team(code="12", name="Team 12"),
        Team(code="13", name="Team 13"),
    ]
    department2.sub_teams = [Team(code="21", name="Team 21")]

    db.session.add(department1)
    db.session.add(department2)
    db.session.add_all(department1.sub_teams)
    db.session.add_all(department2.sub_teams)
    db.session.commit()

    return [department1, department2
            ] + department1.sub_teams + department2.sub_teams
Esempio n. 2
0
    def add_teams(self):
        department = Team(parent_team=None, name="Department", code="Dptmnt")
        db.session.add(department)

        team_codes_and_names = {
            "CodeA": "Team A",
            "CodeB": "Team B",
            "CodeNameChange": "Team with name change",
            "CodeOneMember": "Team with only one member",
        }
        for code, name in team_codes_and_names.items():
            db.session.add(Team(parent_team=department, name=name, code=code))
        db.session.commit()
    def setup_required_objects(self, base_date: datetime):
        team = Team(parent_team=None, code="ABC", name="Team ABC")
        db.session.add(team)
        db.session.commit()

        activity = Activity(team_id=team.team_id, activity_name="ABC")
        db.session.add(activity)
        db.session.commit()

        sprint = Sprint(
            activity_id=activity.activity_id,
            last_updated=datetime(2020, 4, 5, 6),
            name="ABC 1",
            state=Sprint.State.CLOSED.value,
            start_date=base_date,
            end_date=base_date + timedelta(days=13),
            complete_date=base_date + timedelta(days=13),
        )
        db.session.add(sprint)
        db.session.commit()

        status_mapping_dict = {
            "To Do": "To Do",
            "In Progress": "In Progress",
            "In Review": "In Progress",
            "Done": "Done",
            "Closed": "Done",
        }
        for status, status_category_str in status_mapping_dict.items():
            status_category = StatusCategory(status_category_str)
            status_mapping_obj = StatusCategoryStatusMapping(
                status=status, status_category=status_category)
            db.session.add(status_mapping_obj)
        db.session.commit()
        return activity, sprint
    def test_earliest_and_latest_date(self, ot_visual, mocker):
        # Create some OT measurements
        dates = ({date(2019, 3, 10),
                  date(2019, 5, 5),
                  date(2019, 5, 10)}
                 | {date(2019, 8, day)
                    for day in range(1, 32)}
                 | {date(2019, 9, day)
                    for day in range(1, 10)}
                 | {date(2019, 10, 28)})

        team = Team(parent_team=None, code="ABC", name="Team ABC")

        for measurement_date in dates:
            db.session.add(
                OTMeasurement(
                    measurement_date=measurement_date,
                    team=team,
                    workdays_fix=20,
                    workdays_actual=20,
                    overtime=timedelta(hours=10, minutes=15),
                ))
        db.session.commit()

        mocker.patch("visuals.work_time.current_user", UserMock())

        # Check if dates in overtime chart match
        assert ot_visual.get_earliest_date() == min(dates)
        assert ot_visual.get_latest_date() == max(dates)
Esempio n. 5
0
    def test_load_team_tree_permissions_no_access(self):
        u = User(email="test@localhost")
        db.session.add(u)
        db.session.add(Team(name="A", code="A"))
        db.session.commit()

        result = load_team_tree_permissions(u)
        assert len(result.team_roles) == 0
        assert len(result.team_parents) == 0
        assert len(result.team_children) == 0
    def test_create_team_top_level(self):
        team = Team(parent_team=None, code="ABC", name="Team ABC")
        assert team is not None

        db.session.add(team)
        db.session.commit()

        # Check if the team was actually added
        assert (db.session.query(Team).filter(
            Team.code == "ABC").one_or_none() is not None)
Esempio n. 7
0
    def _create_teams(l, parent_id=None):
        for team_name, role, children in l:
            t = Team(name=team_name, code=team_name, parent_id=parent_id)
            db.session.add(t)
            db.session.flush()
            if role:
                ut = UserTeam(user=u, team=t, role=role)
                db.session.add(ut)
            db.session.flush()

            team_id_by_name[team_name] = t.team_id

            _create_teams(children, parent_id=t.team_id)
Esempio n. 8
0
    def test_delete_records_team(self, db_session):
        # Create some records in the database
        for i in range(5):
            db.session.add(
                Team(code=str(i), name=f"Team {i}", parent_team=None))
        db.session.commit()

        # Delete records
        success = action_delete_all_for_model(model_name="Team", output=print)

        # Assert DB has no records in it for model
        assert db.session.query(Team).count() == 0
        # Assert function returned True
        assert success
Esempio n. 9
0
    def setup_required_objects(self):
        team = Team(parent_team=None, code="ABC", name="Team ABC")
        db.session.add(team)

        project = JiraProject(project_key="TP-1", project_name="Test Project 1")
        db.session.add(project)
        db.session.commit()

        activity = Activity(
            team_id=team.team_id,
            activity_name="ABC Activity",
            jira_project_id=project.id,
        )
        db.session.add(activity)
        db.session.commit()
Esempio n. 10
0
def team(db_session):
    team = Team(parent_team=None, code="ABC", name="Team ABC")
    flask_app_db.session.add(team)
    flask_app_db.session.commit()
    return team
 def add_teams(self):
     team_names = {"Team A", "Team B", "Team C", "Team D"}
     for team_name in team_names:
         db.session.add(
             Team(parent_team=None, name=team_name, code=team_name))
     db.session.commit()
def thc_data(
        db_session
) -> Tuple[List[Team], List[THCQuestion], List[THCMeasurement]]:
    # Set up team health check test data
    # Teams
    team = Team(name="Team A", code="TeamA")  # 6 members
    teams = [team]

    # Questions
    DECK = "Test-deck"
    q1 = THCQuestion(deck=DECK,
                     topic="Topic 1",
                     answer_green="Good",
                     answer_red="Bad")
    q2 = THCQuestion(deck=DECK,
                     topic="Topic 2",
                     answer_green="Good",
                     answer_red="Bad")
    q_new = THCQuestion(deck=DECK,
                        topic="New topic",
                        answer_green="Great",
                        answer_red="Oh no!")
    questions = [q1, q2, q_new]

    # Clear result
    m11 = THCMeasurement(
        measurement_date=LAST_YEAR_DATE,
        session_name=LAST_YEAR,
        team=team,
        question=q1,
        result_red=0,
        result_yellow=0,
        result_green=6,
    )
    # Tie
    m12 = THCMeasurement(
        measurement_date=LAST_YEAR_DATE,
        session_name=LAST_YEAR,
        team=team,
        question=q2,
        result_red=2,
        result_yellow=2,
        result_green=2,
    )

    # One member missing
    m21 = THCMeasurement(
        measurement_date=PAST_DATE,
        session_name=PAST,
        team=team,
        question=q1,
        result_red=0,
        result_yellow=0,
        result_green=5,
    )
    # Result changed
    m22 = THCMeasurement(
        measurement_date=PAST_DATE,
        session_name=PAST,
        team=team,
        question=q2,
        result_red=1,
        result_yellow=3,
        result_green=2,
    )

    m31 = THCMeasurement(
        measurement_date=RECENT_DATE,
        session_name=RECENT,
        team=team,
        question=q1,
        result_red=0,
        result_yellow=0,
        result_green=5,
    )
    # Result changed
    m32 = THCMeasurement(
        measurement_date=RECENT_DATE,
        session_name=RECENT,
        team=team,
        question=q2,
        result_red=1,
        result_yellow=3,
        result_green=2,
    )
    # New question
    m33 = THCMeasurement(
        measurement_date=RECENT_DATE,
        session_name=RECENT,
        team=team,
        question=q_new,
        result_red=2,
        result_yellow=1,
        result_green=3,
    )
    measurements = [m11, m12, m21, m22, m31, m32, m33]

    db.session.add_all(teams)
    db.session.add_all(questions)
    db.session.add_all(measurements)
    db.session.commit()

    return teams, questions, measurements