Beispiel #1
0
    def test_list_releases_files_with_another_package(self):
        from papaye.views.simple import ListReleaseFileView
        from papaye.models import Package, Release, Root, ReleaseFile

        # Test packages
        root = Root()
        root['package1'] = Package(name='package1')
        root['package2'] = Package(name='package2')
        root['package1']['release1'] = Release(name='release1',
                                               version='1.0',
                                               metadata={})
        root['package1']['release1'].__parent__ = root['package1']
        root['package2']['release2'] = Release(name='release2',
                                               version='2.0',
                                               metadata={})
        root['package2']['release2'].__parent__ = root['package2']
        root['package1']['release1']['releasefile1.tar.gz'] = ReleaseFile(
            filename='releasefile1.tar.gz', content=b'', md5_digest='12345')
        root['package1']['release1']['releasefile1.tar.gz'].__parent__ = root[
            'package1']['release1']
        root['package2']['release2']['releasefile2.tar.gz'] = ReleaseFile(
            filename='releasefile2.tar.gz', content=b'', md5_digest='12345')
        root['package2']['release2']['releasefile2.tar.gz'].__parent__ = root[
            'package2']['release2']

        view = ListReleaseFileView(root['package1'], self.request)
        response = view()

        self.assertIsInstance(response, dict)
        self.assertIn('objects', response)
        self.assertIsInstance(response['objects'], types.GeneratorType)
        self.assertEqual(
            [(url, release) for url, release in response['objects']],
            [
                ('http://example.com/simple/package1/release1/releasefile1.tar.gz#md5=12345',
                 root['package1']['release1']['releasefile1.tar.gz']),
            ],
        )

        view = ListReleaseFileView(root['package2'], self.request)
        response = view()

        self.assertIsInstance(response, dict)
        self.assertIn('objects', response)
        self.assertIsInstance(response['objects'], types.GeneratorType)
        self.assertEqual(
            [(url, release) for url, release in response['objects']],
            [
                ('http://example.com/simple/package2/release2/releasefile2.tar.gz#md5=12345',
                 root['package2']['release2']['releasefile2.tar.gz']),
            ],
        )
Beispiel #2
0
    def test_list_releases_files_with_another_package(self):
        from papaye.views.simple import ListReleaseFileView
        from papaye.models import Package, Release, Root, ReleaseFile

        # Test packages
        root = Root()
        root["package1"] = Package(name="package1")
        root["package2"] = Package(name="package2")
        root["package1"]["release1"] = Release(name="release1", version="1.0", metadata={})
        root["package1"]["release1"].__parent__ = root["package1"]
        root["package2"]["release2"] = Release(name="release2", version="2.0", metadata={})
        root["package2"]["release2"].__parent__ = root["package2"]
        root["package1"]["release1"]["releasefile1.tar.gz"] = ReleaseFile(
            filename="releasefile1.tar.gz", content=b"", md5_digest="12345"
        )
        root["package1"]["release1"]["releasefile1.tar.gz"].__parent__ = root["package1"]["release1"]
        root["package2"]["release2"]["releasefile2.tar.gz"] = ReleaseFile(
            filename="releasefile2.tar.gz", content=b"", md5_digest="12345"
        )
        root["package2"]["release2"]["releasefile2.tar.gz"].__parent__ = root["package2"]["release2"]

        view = ListReleaseFileView(root["package1"], self.request)
        response = view()

        self.assertIsInstance(response, dict)
        self.assertIn("objects", response)
        self.assertIsInstance(response["objects"], types.GeneratorType)
        self.assertEqual(
            [(url, release.__name__) for url, release in response["objects"]],
            [
                (
                    "http://example.com/simple/package1/release1/releasefile1.tar.gz#md5=12345",
                    root["package1"]["release1"]["releasefile1.tar.gz"].__name__,
                )
            ],
        )

        view = ListReleaseFileView(root["package2"], self.request)
        response = view()

        self.assertIsInstance(response, dict)
        self.assertIn("objects", response)
        self.assertIsInstance(response["objects"], types.GeneratorType)
        self.assertEqual(
            [(url, release.__name__) for url, release in response["objects"]],
            [
                (
                    "http://example.com/simple/package2/release2/releasefile2.tar.gz#md5=12345",
                    root["package2"]["release2"]["releasefile2.tar.gz"].__name__,
                )
            ],
        )
Beispiel #3
0
    def test_list_releases_files_with_new_remotes_release(self, mock, requests_mock):
        from papaye.views.simple import ListReleaseFileView
        from papaye.models import Package, Release, Root, ReleaseFile

        mock.return_value = "3.0"

        # Test packages
        root = Root()
        root["package1"] = Package(name="package1")
        root["package1"]["release1"] = Release(name="release1", version="1.0", metadata={})
        root["package1"]["release1"].__parent__ = root["package1"]
        root["package1"]["release1"]["releasefile1.tar.gz"] = ReleaseFile(
            filename="releasefile1.tar.gz", content=b"", md5_digest="12345"
        )
        root["package1"]["release1"]["releasefile1.tar.gz"].__parent__ = root["package1"]["release1"]

        self.request.matchdict["traverse"] = (root["package1"].__name__, root["package1"]["release1"].__name__)
        self.request.registry.settings["papaye.proxy"] = "true"
        view = ListReleaseFileView(root["package1"], self.request)
        pypi_result = {
            "info": {"name": "package1"},
            "releases": {
                "release1": [
                    {"filename": "releasefile1.tar.gz", "url": "http://example.com/", "md5_digest": "fake md5"}
                ]
            },
        }
        requests_mock.return_value = FakeGRequestResponse(200, bytes(json.dumps(pypi_result), "utf-8"))
        response = view()

        self.assertIsInstance(response, dict)
Beispiel #4
0
    def test_list_releases_files_with_new_remotes_release(
            self, mock, requests_mock):
        from papaye.views.simple import ListReleaseFileView
        from papaye.models import Package, Release, Root, ReleaseFile

        mock.return_value = "3.0"

        # Test packages
        root = Root()
        root['package1'] = Package(name='package1')
        root['package1']['release1'] = Release(name='release1',
                                               version='1.0',
                                               metadata={})
        root['package1']['release1'].__parent__ = root['package1']
        root['package1']['release1']['releasefile1.tar.gz'] = ReleaseFile(
            filename='releasefile1.tar.gz', content=b'', md5_digest='12345')
        root['package1']['release1']['releasefile1.tar.gz'].__parent__ = root[
            'package1']['release1']

        self.request.matchdict['traverse'] = (
            root['package1'].__name__, root['package1']['release1'].__name__)
        self.request.registry.settings['papaye.proxy'] = 'true'
        view = ListReleaseFileView(root['package1'], self.request)
        pypi_result = {
            'info': {
                'name': 'package1',
            },
            'releases': {
                'release1': [{
                    'filename': 'releasefile1.tar.gz',
                    'url': 'http://example.com/',
                    'md5_digest': 'fake md5',
                }]
            }
        }
        requests_mock.return_value = FakeGRequestResponse(
            200, bytes(json.dumps(pypi_result), 'utf-8'))
        response = view()

        self.assertIsInstance(response, dict)
Beispiel #5
0
    def test_list_releases_with_proxy(self, mock):
        from papaye.views.simple import ListReleaseFileView
        from papaye.models import Package, Release, Root, ReleaseFile

        mock_proxy_response(mock)

        # Test packages
        root = Root()
        root["pyramid"] = Package(name="pyramid")
        root["pyramid"]["release1"] = Release(name="release1", version="1.0", metadata={})
        root["pyramid"]["release1"].__parent__ = root["pyramid"]
        root["pyramid"]["release1"]["releasefile1.tar.gz"] = ReleaseFile(
            filename="releasefile1.tar.gz", content=b"", md5_digest="12345"
        )
        root["pyramid"]["release1"]["releasefile1.tar.gz"].__parent__ = root["pyramid"]["release1"]

        self.request.matchdict["traverse"] = (root["pyramid"].__name__, root["pyramid"]["release1"].__name__)
        self.request.registry.settings["papaye.proxy"] = "true"
        view = ListReleaseFileView(root["pyramid"], self.request)

        response = view()

        self.assertIsInstance(response, dict)
        assert len(list(response["objects"])) == 82