You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2014/01/24 16:21:54 UTC

[1/2] git commit: [#6895] ticket:518 Use HEAD instead of GET

Updated Branches:
  refs/heads/master 8a337c53c -> 43def0d73


[#6895] ticket:518 Use HEAD instead of GET


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/43def0d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/43def0d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/43def0d7

Branch: refs/heads/master
Commit: 43def0d734dfd0b760caa80ce1ae48ad1963d891
Parents: 7e90e15
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Jan 24 12:06:35 2014 +0200
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Fri Jan 24 15:21:11 2014 +0000

----------------------------------------------------------------------
 ForgeImporters/forgeimporters/google/__init__.py       |  5 +++--
 .../forgeimporters/tests/google/test_extractor.py      | 13 ++++---------
 2 files changed, 7 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/43def0d7/ForgeImporters/forgeimporters/google/__init__.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/__init__.py b/ForgeImporters/forgeimporters/google/__init__.py
index 0a4e1e0..51560f9 100644
--- a/ForgeImporters/forgeimporters/google/__init__.py
+++ b/ForgeImporters/forgeimporters/google/__init__.py
@@ -23,6 +23,7 @@ from collections import defaultdict
 import logging
 import os
 
+import requests
 from BeautifulSoup import BeautifulSoup
 from formencode import validators as fev
 
@@ -161,8 +162,8 @@ class GoogleCodeProjectExtractor(ProjectExtractor):
     DEFAULT_ICON = 'http://www.gstatic.com/codesite/ph/images/defaultlogo.png'
 
     def check_readable(self):
-        page = urllib.urlopen(self.get_page_url('project_info'))
-        return (page.getcode() == 200) and (page.geturl() == self.get_page_url('project_info'))
+        resp = requests.head(self.get_page_url('project_info'))
+        return resp.status_code == 200
 
     def get_short_description(self, project):
         page = self.get_page('project_info')

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/43def0d7/ForgeImporters/forgeimporters/tests/google/test_extractor.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/google/test_extractor.py b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
index 1de4872..fb82a57 100644
--- a/ForgeImporters/forgeimporters/tests/google/test_extractor.py
+++ b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
@@ -460,18 +460,13 @@ class TestGoogleCodeProjectExtractor(TestCase):
             assert False, 'Missing expected raised exception'
         self.assertEqual(issue_ids, [1, 3])
 
-    @mock.patch.object(google.urllib, 'urlopen')
-    def test_check_readable(self, urlopen):
-        urlopen.return_value.getcode.return_value = 200
-        urlopen.return_value.geturl.return_value = 'http://code.google.com/p/my-project/'
+    @mock.patch.object(google.requests, 'head')
+    def test_check_readable(self, head):
+        head.return_value.status_code = 200
         assert google.GoogleCodeProjectExtractor('my-project').check_readable()
-
-        urlopen.return_value.getcode.return_value = 404
+        head.return_value.status_code = 404
         assert not google.GoogleCodeProjectExtractor('my-project').check_readable()
 
-        urlopen.return_value.getcode.return_value = 200
-        urlopen.return_value.geturl.return_value = 'http://not_valid_url'
-        assert not google.GoogleCodeProjectExtractor('my-project').check_readable()
 
 class TestUserLink(TestCase):
 


[2/2] git commit: [#6895] ticket:518 Validate GC project is publicly readable

Posted by tv...@apache.org.
[#6895] ticket:518 Validate GC project is publicly readable


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/7e90e156
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/7e90e156
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/7e90e156

Branch: refs/heads/master
Commit: 7e90e1564362dc505a632de71ac342db7c54e8ba
Parents: 8a337c5
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Thu Jan 23 16:39:57 2014 +0400
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Fri Jan 24 15:21:11 2014 +0000

----------------------------------------------------------------------
 ForgeImporters/forgeimporters/google/__init__.py        |  7 +++++++
 .../forgeimporters/tests/google/test_extractor.py       | 12 ++++++++++++
 2 files changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7e90e156/ForgeImporters/forgeimporters/google/__init__.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/__init__.py b/ForgeImporters/forgeimporters/google/__init__.py
index 57ff4d1..0a4e1e0 100644
--- a/ForgeImporters/forgeimporters/google/__init__.py
+++ b/ForgeImporters/forgeimporters/google/__init__.py
@@ -128,6 +128,9 @@ class GoogleCodeProjectNameValidator(fev.FancyValidator):
             project_name = os.path.basename(url.path.strip('/'))
         if not re.match(r'^[a-z0-9][a-z0-9-]{,61}$', project_name):
             raise fev.Invalid(self.message('invalid'))
+
+        if not GoogleCodeProjectExtractor(project_name).check_readable():
+            raise fev.Invalid('The project "%s" is not avalible for import' % value, value, state)
         return project_name
 
 
@@ -157,6 +160,10 @@ class GoogleCodeProjectExtractor(ProjectExtractor):
 
     DEFAULT_ICON = 'http://www.gstatic.com/codesite/ph/images/defaultlogo.png'
 
+    def check_readable(self):
+        page = urllib.urlopen(self.get_page_url('project_info'))
+        return (page.getcode() == 200) and (page.geturl() == self.get_page_url('project_info'))
+
     def get_short_description(self, project):
         page = self.get_page('project_info')
         project.short_description = page.find(

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/7e90e156/ForgeImporters/forgeimporters/tests/google/test_extractor.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/tests/google/test_extractor.py b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
index 1eab6f6..1de4872 100644
--- a/ForgeImporters/forgeimporters/tests/google/test_extractor.py
+++ b/ForgeImporters/forgeimporters/tests/google/test_extractor.py
@@ -460,6 +460,18 @@ class TestGoogleCodeProjectExtractor(TestCase):
             assert False, 'Missing expected raised exception'
         self.assertEqual(issue_ids, [1, 3])
 
+    @mock.patch.object(google.urllib, 'urlopen')
+    def test_check_readable(self, urlopen):
+        urlopen.return_value.getcode.return_value = 200
+        urlopen.return_value.geturl.return_value = 'http://code.google.com/p/my-project/'
+        assert google.GoogleCodeProjectExtractor('my-project').check_readable()
+
+        urlopen.return_value.getcode.return_value = 404
+        assert not google.GoogleCodeProjectExtractor('my-project').check_readable()
+
+        urlopen.return_value.getcode.return_value = 200
+        urlopen.return_value.geturl.return_value = 'http://not_valid_url'
+        assert not google.GoogleCodeProjectExtractor('my-project').check_readable()
 
 class TestUserLink(TestCase):