コード例 #1
0
ファイル: test_simple.py プロジェクト: ikonst/pypicloud
 def should_serve(self, request):
     """ When requested, the endpoint should serve the packages """
     ret = package_versions(self.package, request)
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package.filename: {
                     "url": self.package.get_url(request),
                     "requires_python": None,
                 }
             }
         },
     )
     # Check the /json endpoint too
     ret = package_versions_json(self.package, request)
     self.assertEqual(
         ret["releases"],
         {
             "1.1": [{
                 "filename": self.package.filename,
                 "url": self.package.get_url(request),
             }]
         },
     )
コード例 #2
0
ファイル: test_simple.py プロジェクト: 418sec/pypicloud
 def should_serve_hashes(self, request):
     """When requested, the endpoint should serve the packages with hashes"""
     ret = package_versions(self.package3, request)
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package3.filename: {
                     "url": self.package3.get_url(request),
                     "requires_python": None,
                     "hash_sha256": "sha",
                     "hash_md5": "md5",
                     "non_hashed_url": self.package3.get_url(request),
                 }
             }
         },
     )
     # Check the /json endpoint too
     ret = package_versions_json(self.package3, request)
     self.assertEqual(
         ret["releases"],
         {
             "2.1": [
                 {
                     "filename": self.package3.filename,
                     "packagetype": "sdist",
                     "url": self.package.get_url(request),
                     "md5_digest": "md5",
                     "digests": {"sha256": "sha", "md5": "md5"},
                     "requires_python": None,
                 }
             ]
         },
     )
コード例 #3
0
 def test_list_versions(self):
     """ Listing package versions should return api call """
     self.request.registry.use_fallback = False
     pkg = Package('mypkg', '1.1', 'mypkg-1.1.tar.gz', datetime.utcnow())
     self.request.db.upload(pkg.name, pkg.version, pkg.path, None)
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     self.assertEqual(result, {'pkgs': [pkg]})
コード例 #4
0
ファイル: test_simple.py プロジェクト: yxd-hde/pypicloud
 def should_serve(self, request):
     """ When requested, the endpoint should serve the packages """
     ret = package_versions(self.package, request)
     self.assertEqual(
         ret,
         {'pkgs': {
             self.package.filename: self.package.get_url(request),
         }})
コード例 #5
0
ファイル: test_simple.py プロジェクト: zdot/pypicloud
 def should_serve_and_redirect(self, request):
     """ Should serve mixture of package urls and redirect urls """
     ret = package_versions(self.package, request)
     f2name = self.package2.filename
     self.assertEqual(
         ret,
         {"pkgs": {self.package.filename: self.package.get_url(request), f2name: self.fallback_packages[f2name]}},
     )
コード例 #6
0
ファイル: test_simple.py プロジェクト: alonisser/pypicloud
 def test_list_versions(self):
     """ Listing package versions should return api call """
     self.request.registry.use_fallback = False
     pkg = Package('mypkg', '1.1', 'mypkg-1.1.tar.gz', datetime.utcnow())
     self.request.db.upload(pkg.name, pkg.version, pkg.path, None)
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     self.assertEqual(result, {'pkgs': [pkg]})
コード例 #7
0
 def test_no_dists(self):
     """ If no distributions found at fallback, return 404 """
     locator = self.request.locator = MagicMock()
     locator.get_project.return_value = {
         'urls': {}
     }
     result = package_versions(self.context, self.request)
     self.assertEqual(result.status_code, 404)
コード例 #8
0
 def test_list_versions_fallback(self):
     """ Listing package versions can fall back to external url """
     self.request.registry.use_fallback = True
     fb = self.request.registry.fallback_url = 'http://pypi.com'
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     url = fb + '/' + context.name + '/'
     self.assertTrue(isinstance(result, HTTPFound))
     self.assertEqual(result.location, url)
コード例 #9
0
ファイル: test_simple.py プロジェクト: alonisser/pypicloud
 def test_list_versions_fallback(self):
     """ Listing package versions can fall back to external url """
     self.request.registry.use_fallback = True
     fb = self.request.registry.fallback_url = 'http://pypi.com'
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     url = fb + '/' + context.name + '/'
     self.assertTrue(isinstance(result, HTTPFound))
     self.assertEqual(result.location, url)
コード例 #10
0
ファイル: test_simple.py プロジェクト: philwhln/pypicloud
 def test_package_read_user(self):
     """ Package, read perms, user. """
     # Should serve mixture of package urls and redirect urls
     req = self.get_request(self.package, "r", "foo")
     ret = package_versions(self.package, req)
     f2name = self.package2.filename
     self.assertEqual(
         ret, {"pkgs": {self.package.filename: self.package.get_url(req), f2name: self.fallback_packages[f2name]}}
     )
コード例 #11
0
ファイル: test_simple.py プロジェクト: johnswanson/pypicloud
 def test_package_write_user(self):
     """ Package, write perms, user. """
     # Should serve package urls and fallback urls
     req = self.get_request(self.package, 'rc', 'foo')
     ret = package_versions(self.package, req)
     p2 = self.package2
     self.assertEqual(ret, {'pkgs': {
         self.package.filename: self.package.get_url(req),
         self.package2.filename: self.fallback_packages[p2.filename],
     }})
コード例 #12
0
 def test_list_versions(self):
     """ Listing package versions should return api call """
     self.request.registry.use_fallback = False
     pkg = Package('mypkg', '1.1', 'mypkg-1.1.tar.gz', datetime.utcnow())
     self.request.db.upload(pkg.filename, None)
     context = SimplePackageResource(self.request, 'mypkg')
     self.request.app_url = MagicMock()
     result = package_versions(context, self.request)
     self.assertEqual(result, {'pkgs': {pkg.filename:
                                        self.request.app_url()}})
コード例 #13
0
ファイル: test_simple.py プロジェクト: stylight/pypicloud
 def should_serve_and_redirect(self, request):
     """ Should serve mixture of package urls and redirect urls """
     ret = package_versions(self.package, request)
     f2name = self.package2.filename
     self.assertEqual(
         ret, {
             'pkgs': {
                 self.package.filename: self.package.get_url(request),
                 f2name: self.fallback_packages[f2name],
             }
         })
コード例 #14
0
ファイル: test_simple.py プロジェクト: raizyr/pypicloud
 def test_list_versions(self):
     """ Listing package versions should return api call """
     self.request.registry.use_fallback = False
     pkg = Package('mypkg', '1.1', 'mypkg-1.1.tar.gz', datetime.utcnow())
     self.request.db.upload(pkg.filename, None)
     context = SimplePackageResource(self.request, 'mypkg')
     self.request.app_url = MagicMock()
     result = package_versions(context, self.request)
     self.assertEqual(result,
                      {'pkgs': {
                          pkg.filename: self.request.app_url()
                      }})
コード例 #15
0
ファイル: test_simple.py プロジェクト: yxd-hde/pypicloud
 def test_package_read_user(self):
     """ Package, read perms, user. """
     # Should serve mixture of package urls and redirect urls
     req = self.get_request(self.package, 'r', 'foo')
     ret = package_versions(self.package, req)
     f2name = self.package2.filename
     self.assertEqual(
         ret, {
             'pkgs': {
                 self.package.filename: self.package.get_url(req),
                 f2name: self.fallback_packages[f2name],
             }
         })
コード例 #16
0
ファイル: test_simple.py プロジェクト: craigbeck/pypicloud
 def test_rename_dists(self, locator):
     """ Rename distribution urls to localhost """
     dist = MagicMock(spec=Distribution)
     dist.source_url = 'http://fallback.com/simple/pkg-1.1.tar.gz'
     dist.name = 'pkg'
     locator().get_project.return_value = {
         'pkg-1.1.tar.gz': dist,
     }
     self.request.app_url = lambda *x: '/'.join(x)
     result = package_versions(self.context, self.request)
     self.assertEqual(result, {'pkgs': {
         'pkg-1.1.tar.gz': 'api/package/pkg/pkg-1.1.tar.gz',
     }})
コード例 #17
0
ファイル: test_simple.py プロジェクト: stylight/pypicloud
 def test_package_write_user(self):
     """ Package, write perms, user. """
     # Should serve package urls and fallback urls
     req = self.get_request(self.package, 'rc', 'foo')
     ret = package_versions(self.package, req)
     p2 = self.package2
     self.assertEqual(
         ret, {
             'pkgs': {
                 self.package.filename: self.package.get_url(req),
                 self.package2.filename:
                 self.fallback_packages[p2.filename],
             }
         })
コード例 #18
0
ファイル: test_simple.py プロジェクト: mathcamp/pypicloud
 def test_package_write_no_user(self):
     """ Package, write perms, no user. """
     # Should serve package urls and fallback urls
     req = self.get_request(self.package, "rc")
     ret = package_versions(self.package, req)
     p2 = self.package2
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package.filename: self.package.get_url(req),
                 self.package2.filename: self.fallback_packages[p2.filename],
             }
         },
     )
コード例 #19
0
ファイル: test_simple.py プロジェクト: raizyr/pypicloud
 def test_rename_dists(self, locator):
     """ Rename distribution urls to localhost """
     dist = MagicMock(spec=Distribution)
     dist.source_url = 'http://fallback.com/simple/pkg-1.1.tar.gz'
     dist.name = 'pkg'
     locator().get_project.return_value = {
         'pkg-1.1.tar.gz': dist,
     }
     self.request.app_url = lambda *x: '/'.join(x)
     result = package_versions(self.context, self.request)
     self.assertEqual(
         result,
         {'pkgs': {
             'pkg-1.1.tar.gz': 'api/package/pkg/pkg-1.1.tar.gz',
         }})
コード例 #20
0
ファイル: test_simple.py プロジェクト: angry-penguins/pie
 def test_package_write_no_user(self):
     """ Package, write perms, no user. """
     # Should serve package urls and fallback urls
     req = self.get_request(self.package, "rc")
     ret = package_versions(self.package, req)
     p2 = self.package2
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package.filename: self.package.get_url(req),
                 self.package2.filename:
                 self.fallback_packages[p2.filename],
             }
         },
     )
コード例 #21
0
ファイル: test_simple.py プロジェクト: ikonst/pypicloud
 def should_serve_and_redirect(self, request):
     """ Should serve mixture of package urls and redirect urls """
     ret = package_versions(self.package, request)
     f2name = self.package2.filename
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package.filename: {
                     "url": self.package.get_url(request),
                     "requires_python": None,
                 },
                 f2name: self.fallback_packages[f2name],
             }
         },
     )
コード例 #22
0
ファイル: test_simple.py プロジェクト: ikonst/pypicloud
 def test_package_write_user(self):
     """ Package, write perms, user. """
     # Should serve package urls and fallback urls
     req = self.get_request(self.package, "rc", "foo")
     ret = package_versions(self.package, req)
     p2 = self.package2
     self.assertEqual(
         ret,
         {
             "pkgs": {
                 self.package.filename: {
                     "url": self.package.get_url(req),
                     "requires_python": None,
                 },
                 self.package2.filename:
                 self.fallback_packages[p2.filename],
             }
         },
     )
コード例 #23
0
ファイル: test_simple.py プロジェクト: mathcamp/pypicloud
 def should_serve(self, request):
     """ When requested, the endpoint should serve the packages """
     ret = package_versions(self.package, request)
     self.assertEqual(
         ret, {"pkgs": {self.package.filename: self.package.get_url(request)}}
     )
     # Check the /json endpoint too
     ret = package_versions_json(self.package, request)
     self.assertEqual(
         ret["releases"],
         {
             "1.1": [
                 {
                     "filename": self.package.filename,
                     "url": self.package.get_url(request),
                 }
             ]
         },
     )
コード例 #24
0
ファイル: test_simple.py プロジェクト: stylight/pypicloud
 def should_serve(self, request):
     """ When requested, the endpoint should serve the packages """
     ret = package_versions(self.package, request)
     self.assertEqual(
         ret,
         {'pkgs': {
             self.package.filename: self.package.get_url(request),
         }})
     # Check the /json endpoint too
     ret = package_versions_json(self.package, request)
     self.assertEqual(
         ret['releases'], {
             '1.1': [
                 {
                     'filename': self.package.filename,
                     'url': self.package.get_url(request),
                 },
             ],
         })
コード例 #25
0
ファイル: test_simple.py プロジェクト: mathcamp/pypicloud
 def should_403(self, request):
     """ When requested, the endpoint should return a 403 """
     ret = package_versions(self.package, request)
     self.assertEqual(ret.status_code, 403)
コード例 #26
0
ファイル: test_simple.py プロジェクト: craigbeck/pypicloud
 def test_no_dists(self, locator):
     """ If no distributions found at fallback, return 404 """
     locator().get_project.return_value = {}
     result = package_versions(self.context, self.request)
     self.assertEqual(result.status_code, 404)
コード例 #27
0
 def test_no_perms(self):
     """ If not in the update_cache groups, return 403 """
     self.request.access.can_update_cache.return_value = False
     result = package_versions(self.context, self.request)
     self.assertEqual(result, self.request.forbid())
コード例 #28
0
ファイル: test_simple.py プロジェクト: raizyr/pypicloud
 def test_no_dists(self, locator):
     """ If no distributions found at fallback, return 404 """
     locator().get_project.return_value = {}
     result = package_versions(self.context, self.request)
     self.assertEqual(result.status_code, 404)
コード例 #29
0
 def test_list_versions_fallback_none(self):
     """ Listing package versions with no fallback returns 404 """
     self.request.registry.fallback = 'none'
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     self.assertEqual(result.status_code, 404)
コード例 #30
0
ファイル: test_simple.py プロジェクト: mathcamp/pypicloud
 def should_cache(self, request):
     """ When requested, the endpoint should serve the fallback packages """
     ret = package_versions(self.package, request)
     self.assertEqual(ret, {"pkgs": self.fallback_packages})
コード例 #31
0
ファイル: test_simple.py プロジェクト: mathcamp/pypicloud
 def should_redirect(self, request):
     """ When requested, the endpoint should redirect to the fallback """
     ret = package_versions(self.package, request)
     self.assertEqual(ret.status_code, 302)
     self.assertEqual(ret.location, self.fallback_url + self.package.name + "/")
コード例 #32
0
ファイル: test_simple.py プロジェクト: raizyr/pypicloud
 def test_list_versions_fallback_none(self):
     """ Listing package versions with no fallback returns 404 """
     self.request.registry.fallback = 'none'
     context = SimplePackageResource(self.request, 'mypkg')
     result = package_versions(context, self.request)
     self.assertEqual(result.status_code, 404)
コード例 #33
0
ファイル: test_simple.py プロジェクト: 418sec/pypicloud
 def should_403(self, request):
     """When requested, the endpoint should return a 403"""
     ret = package_versions(self.package, request)
     self.assertEqual(ret.status_code, 403)
コード例 #34
0
ファイル: test_simple.py プロジェクト: 418sec/pypicloud
 def should_redirect(self, request):
     """When requested, the endpoint should redirect to the fallback"""
     ret = package_versions(self.package, request)
     self.assertEqual(ret.status_code, 302)
     self.assertEqual(ret.location, self.fallback_url + self.package.name + "/")
コード例 #35
0
ファイル: test_simple.py プロジェクト: philwhln/pypicloud
 def should_serve(self, request):
     """ When requested, the endpoint should serve the packages """
     ret = package_versions(self.package, request)
     self.assertEqual(ret, {"pkgs": {self.package.filename: self.package.get_url(request)}})
コード例 #36
0
ファイル: test_simple.py プロジェクト: 418sec/pypicloud
 def should_cache(self, request):
     """When requested, the endpoint should serve the fallback packages"""
     ret = package_versions(self.package, request)
     self.assertEqual(ret, {"pkgs": self.fallback_packages})
コード例 #37
0
ファイル: test_simple.py プロジェクト: raizyr/pypicloud
 def test_no_perms(self):
     """ If not in the update_cache groups, return 403 """
     self.request.access.can_update_cache.return_value = False
     result = package_versions(self.context, self.request)
     self.assertEqual(result, self.request.forbid())