Ejemplo n.º 1
0
 def serialize_project(self, project: Project) -> dict:
     return remove_nones({
         "id":
         project.project_id.project_id,
         "name":
         project.name,
         "status":
         project.status.value,
         "date_opened":
         serialize_datetime(project.date_opened),
         "date_closed":
         serialize_datetime(project.date_closed),
         "deadline":
         serialize_datetime(project.deadline),
         "hour_rate":
         serialize_money(project.hour_rate),
         "description":
         project.description,
         "goals_and_metrics":
         project.goals_and_metrics,
         "limitations_and_restrictions":
         project.limitations_and_restrictions,
         "files":
         self._files_serializer.serialize_files(project.files),
         "primary_color":
         project.primary_color,
         "secondary_color":
         project.secondary_color,
     })
Ejemplo n.º 2
0
 def serialize_issue(self, issue: BoundIssue) -> dict:
     return remove_nones({
         "id":
         issue.object_id.full_id,
         "name":
         issue.name,
         "status":
         issue.status.value,
         "type":
         issue.type.value,
         "priority":
         issue.priority.value,
         "date_opened":
         serialize_datetime(issue.date_opened),
         "date_closed":
         serialize_datetime(issue.date_closed),
         "deadline":
         serialize_datetime(issue.deadline),
         "description":
         issue.description,
         "external_type":
         issue.external_type,
         "estimated_duration":
         issue.estimated_duration,
         "files":
         self._files_serializer.serialize_files(issue.files),
         "links":
         self._links_serializer.serialize_links(issue.links),
         "tags":
         self._tags_serializer.serialize_tags(issue.tags),
         "tasks":
         self._tasks_serializer.serialize_tasks(issue.tasks),
         "hour_rate":
         serialize_money(issue.hour_rate) if issue.hour_rate else None,
     })
Ejemplo n.º 3
0
def test_remove_nones_flat():
    before = {
        "A": "A",
        "B": None,
        "C": "",
        "D": 0,
    }
    after = {
        "A": "A",
        "C": "",
        "D": 0,
    }
    assert remove_nones(before) == after
Ejemplo n.º 4
0
 def serialize_statistics(statistics: Statistics) -> dict:
     return remove_nones({
         "progress":
         statistics.progress,
         "overall_progress":
         statistics.overall_progress,
         "estimated_duration":
         statistics.estimated_duration,
         "estimated_cost":
         serialize_money(statistics.estimated_cost),
         "burned_duration":
         statistics.burned_duration,
         "burned_cost":
         serialize_money(statistics.burned_cost),
         "burned_expenditures_cost":
         serialize_money(statistics.burned_expenditures_cost),
     })
Ejemplo n.º 5
0
 def serialize_deliverable(deliverable: BoundDeliverable) -> dict:
     return remove_nones({
         "id":
         deliverable.object_id.full_id,
         "name":
         deliverable.name,
         "status":
         deliverable.status.value,
         "date_opened":
         serialize_datetime(deliverable.date_opened),
         "date_closed":
         serialize_datetime(deliverable.date_closed),
         "deadline":
         serialize_datetime(deliverable.deadline),
         "description":
         deliverable.description,
     })
Ejemplo n.º 6
0
 def serialize_expenditure(self, expenditure: BoundExpenditure):
     return remove_nones({
         "id":
         expenditure.simple_id.simple_id,
         "name":
         expenditure.name,
         "description":
         expenditure.description,
         "date_opened":
         expenditure.date_opened,
         "date_closed":
         expenditure.date_closed,
         "deadline":
         expenditure.deadline,
         "cost":
         serialize_money(expenditure.cost),
         "status":
         expenditure.status.value,
         "type":
         expenditure.type.value,
         "files":
         self._files_serializer.serialize_files(expenditure.files)
     })
Ejemplo n.º 7
0
def test_remove_nones_nested():
    before = {
        "A": "A",
        "B": None,
        "C": "",
        "D": 0,
        "E": {
            "A": "A",
            "B": None,
            "C": "",
            "D": 0,
        }
    }
    after = {
        "A": "A",
        "C": "",
        "D": 0,
        "E": {
            "A": "A",
            "C": "",
            "D": 0,
        }
    }
    assert remove_nones(before) == after
Ejemplo n.º 8
0
def test_remove_nones_empty():
    assert remove_nones({}) == {}