Beispiel #1
0
    def test_properties_description_1(self):
        project = Project()

        try:
            project.description = "QWERTZUIOPasdfghjklYXCVBNM"
        except ValueError:
            self.fail()
Beispiel #2
0
    def test_properties_name_1(self):
        project = Project()

        try:
            project.name = "ABCdefgHIJK"
        except ValueError:
            self.fail()
Beispiel #3
0
    def test_properties_nr_1(self):
        project = Project()

        try:
            project.nr = 1
        except ValueError:
            self.fail()
Beispiel #4
0
    def test_properties_description_2(self):
        project = Project()

        try:
            project.description = "Bad;Description"
        except ValueError:
            pass
        else:
            self.fail()
Beispiel #5
0
    def test_properties_name_2(self):
        project = Project()

        try:
            project.name = "Bad;Name"
        except ValueError:
            pass
        else:
            self.fail()
Beispiel #6
0
    def test_properties_nr_3(self):
        project = Project()

        try:
            project.nr = -1
        except ValueError:
            pass
        else:
            self.fail()
Beispiel #7
0
def edit_project(project_nr, new_name=None, new_description=None):
    pr = Project.find(project_nr)
    if new_name is not None:
        pr.name = new_name
    if new_description is not None:
        pr.description = new_description
    pr.save()
Beispiel #8
0
def collect_projects():
    cur = db.get_conn().cursor()
    cur.execute(f"SELECT * FROM {Project.Table.name}")
    result = [
        Project.from_result(cur.column_names, row) for row in cur.fetchall()
    ]
    cur.close()
    return result
Beispiel #9
0
 def test_adapter_converter(self):
     project = Project()
     project.nr = 12345
     project.name = "TestProject"
     project.description = "It's just a test."
     out = Project.adapter(project)
     project2 = Project.converter(bytes(out, "UTF-8", "replace"))
     self.assertEqual(project.nr, project2.nr)
     self.assertEqual(project.name, project2.name)
     self.assertEqual(project.description, project2.description)
Beispiel #10
0
def get_hours_per_project_for_employee(empl_nr: int):
    query = f"SELECT projectNr, SUM(TIMEDIFF(end_, start_)/10000) AS 'hours' " \
            f"FROM {entry.Entry.Table.name} " \
            f"WHERE emplNr={empl_nr} " \
            f"GROUP BY projectNr ORDER BY 'hours' DESC;"
    cur = db.get_conn().cursor()
    cur.execute(query)
    idx_emplnr = cur.column_names.index("projectNr")
    idx_hours = cur.column_names.index("hours")
    res = {
        Project.find(row[idx_emplnr]): row[idx_hours]
        for row in cur.fetchall()
    }
    cur.close()
    return res
Beispiel #11
0
 def getProject(self) -> Project:
     if not self._project:
         self._project = Project.find(self._project_nr)
     return self._project
Beispiel #12
0
def new_project(project_nr, name, description):
    pr = Project()
    pr.nr = project_nr
    pr.name = name
    pr.description = description
    pr.insert()