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']), ], )
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__, ) ], )
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)
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)
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