コード例 #1
0
def test_find_project_replacing_dots_with_dashes(project_repository: DBProjectRepository, project_view: DBProjectView):
    project = ProjectStub.create(name=ProjectName('pepy-rocks'))
    project_repository.save_projects([project])

    result = project_view.find('pepy.rocks')
    expected = ProjectProjection('pepy-rocks', project.downloads.value, [])
    assert result == expected
コード例 #2
0
ファイル: test_db_view.py プロジェクト: daghan/pepy
def test_find_project_ignoring_case(project_repository: DBProjectRepository, project_view: DBProjectView):
    project = ProjectStub.create(name=ProjectName("pepy"))
    project_repository.save_projects([project])

    result = project_view.find("PEpy")
    expected = ProjectProjection("pepy", project.downloads.value, [])
    assert result == expected
コード例 #3
0
def test_find_project_ignoring_white_spaces(project_repository: DBProjectRepository, project_view: DBProjectView):
    project = ProjectStub.create(name=ProjectName('pepy'))
    project_repository.save_projects([project])

    result = project_view.find('    pepy  ')
    expected = ProjectProjection('pepy', project.downloads.value, [])
    assert result == expected
コード例 #4
0
    def find(self, project_name: str) -> Optional[ProjectProjection]:
        project_name = project_name.lower().strip().replace(".", "-")
        data = self._db.table("projects").where("name", project_name).first()

        if data is None:
            return None

        last_downloads_data = (self._db.table("downloads_per_day").where(
            "name", project_name).order_by("date", "desc").limit(30).get())

        last_downloads = [
            DownloadProjection(row["date"], row["downloads"])
            for row in last_downloads_data
        ]

        return ProjectProjection(data["name"], data["downloads"],
                                 last_downloads)