示例#1
0
 def test_http_get_response_obj_present(self):
     """Confirm that response object is set after GET request with site that exists"""
     http = HTTP('http://google.com')
     http.get()
     self.assertTrue(http.res)             # the response object
     self.assertTrue(http.res.content)     # the content of the response
     self.assertTrue(http.res.status_code) # the status code
    def get_response(self):
        try:
            the_url = prepare_url(self.url)
            http = HTTP(the_url)
            http.get()
            resp = http.response()

            # confirm that a response was returned, abort if not
            if resp == None and the_url.startswith('https://'):
                stderr(
                    "Unable to connect to the requested URL. This can happen if the secure HTTP protocol is not supported at the requested URL."
                )
                sys.exit(1)
            elif resp == None:
                stderr(
                    "Unable to connect to the requested URL. Please confirm your URL and try again."
                )
                sys.exit(1)

            if len(resp.history) > 0:
                count = len(resp.history)
                for i in range(count):
                    print(
                        str(resp.history[i].status_code) + " : " +
                        str(resp.history[i].url))
            print(str(http.res.status_code) + " : " + http.res.url)
            exit_success()
        except ConnectionError:
            error_string = "Unable to connect to the URL, " + self.url
            stderr(error_string, 1)
        except Exception as e:
            raise e
示例#3
0
 def test_http_get_response_check_301(self):
     """Confirm that the reponse object contains 301 status code when do not follow redirects"""
     http = HTTP('http://httpbin.org/status/301')
     http.get(False)  # do not follow redirects
     self.assertEqual(http.res.status_code, 301)
     response = http.response()
     self.assertEqual(response.status_code, 301)
示例#4
0
 def test_http_get_response_check_200(self):
     """Confirm that the response object contains 200 status code"""
     http = HTTP('http://httpbin.org/status/200')
     http.get()
     self.assertEqual(http.res.status_code, 200) # test the response object attribute
     response = http.response()
     self.assertEqual(response.status_code, 200) # test the returned object from the response() method
示例#5
0
 def test_http_get_response_obj_present(self):
     """Confirm that response object is set after GET request with site that exists"""
     http = HTTP('http://google.com')
     http.get()
     self.assertTrue(http.res)  # the response object
     self.assertTrue(http.res.content)  # the content of the response
     self.assertTrue(http.res.status_code)  # the status code
示例#6
0
 def test_http_get_response_check_301(self):
     """Confirm that the reponse object contains 301 status code when do not follow redirects"""
     http = HTTP('http://httpbin.org/status/301')
     http.get(False) # do not follow redirects
     self.assertEqual(http.res.status_code, 301)
     response = http.response()
     self.assertEqual(response.status_code, 301)
示例#7
0
 def test_http_get_response_check_404(self):
     """Confirm that the response object contains a 404 status code when authentication required"""
     http = HTTP('http://httpbin.org/status/404')
     http.get()
     self.assertEqual(http.res.status_code, 404)
     response = http.response()
     self.assertEqual(response.status_code, 404)
示例#8
0
 def test_http_get_response_check_404(self):
     """Confirm that the response object contains a 404 status code when authentication required"""
     http = HTTP('http://httpbin.org/status/404')
     http.get()
     self.assertEqual(http.res.status_code, 404)
     response = http.response()
     self.assertEqual(response.status_code, 404)
示例#9
0
    def get_response(self):
        try:
            the_url = prepare_url(self.url)
            http = HTTP(the_url)
            http.get()
            resp = http.response()

            # confirm that a response was returned, abort if not
            if resp == None and the_url.startswith('https://'):
                stderr("Unable to connect to the requested URL. This can happen if the secure HTTP protocol is not supported at the requested URL.")
                sys.exit(1)
            elif resp == None:
                stderr("Unable to connect to the requested URL. Please confirm your URL and try again.")
                sys.exit(1)

            if len(resp.history) > 0:
                count = len(resp.history)
                for i in range(count):
                    print(str(resp.history[i].status_code) + " : " + str(resp.history[i].url))
            print(str(http.res.status_code) + " : " + http.res.url)
            exit_success()
        except ConnectionError:
            error_string = "Unable to connect to the URL, " + self.url
            stderr(error_string, 1)
        except Exception as e:
            raise e
示例#10
0
 def test_http_get_response_check_200(self):
     """Confirm that the response object contains 200 status code"""
     http = HTTP('http://httpbin.org/status/200')
     http.get()
     self.assertEqual(http.res.status_code,
                      200)  # test the response object attribute
     response = http.response()
     self.assertEqual(
         response.status_code,
         200)  # test the returned object from the response() method
示例#11
0
    def run(self):
        from Naked.toolshed.network import HTTP
        http = HTTP(self.url)  # use the python.org url for the classifier list

        print('•naked• Pulling the classifier list from python.org...')

        res = http.get()  # get the list
        test_list = res.split('\n')  # split on newlines

        if self.needle == "":  # user did not enter a search string, print the entire list
            print(
                "•naked• You did not provide a search string.  Here is the entire list:"
            )
            print(' ')
            for item in test_list:
                print(item)
        else:  # user entered a search string, find it
            lower_needle = self.needle.lower()
            print("•naked• Performing a case insensitive search for '" +
                  self.needle + "'")
            print(' ')
            filtered_list = [
                x for x in test_list if lower_needle in x.lower()
            ]  #case insensitive match for the search string
            for item in filtered_list:
                print(item)

        exit_success()  # exit with zero status code
示例#12
0
    def test_http_get_ssl(self):
        """Test HTTP GET request content data with secure HTTP"""
        http = HTTP("https://raw.github.com/chrissimpkins/six-four/master/LICENSE")
        http_text = http.get()

        if state.py2:
            self.http_string = unicode(self.http_string)
        self.assertEqual(http_text.strip(), self.http_string.strip())
示例#13
0
 def test_http_get_response_obj_nonexistentsite(self):
     """Test the response object after GET request for a non-existent site"""
     http = HTTP('http://bigtimebogussite.io')
     self.assertEqual(False, http.get())
     self.assertEqual(None, http.res)
     with self.assertRaises(AttributeError):
         http.res.content
     with self.assertRaises(AttributeError):
         http.res.status_code
示例#14
0
    def test_http_get_ssl(self):
        """Test HTTP GET request content data with secure HTTP"""
        http = HTTP(
            "https://raw.github.com/chrissimpkins/six-four/master/LICENSE")
        http_text = http.get()

        if state.py2:
            self.http_string = unicode(self.http_string)
        self.assertEqual(http_text.strip(), self.http_string.strip())
示例#15
0
    def test_http_get_type(self):
        """Test the HTTP GET request return value type"""
        http = HTTP("https://raw.github.com/chrissimpkins/six-four/master/LICENSE")
        http_text = http.get()

        if state.py2:
            self.assertEqual(type(u"test string"), type(http_text))
        else:
            self.assertEqual(type(str("test string")), type(http_text))
示例#16
0
 def test_http_get_response_obj_nonexistentsite(self):
     """Test the response object after GET request for a non-existent site"""
     http = HTTP('http://bigtimebogussite.io')
     self.assertEqual(False, http.get())
     self.assertEqual(None, http.res)
     with self.assertRaises(AttributeError):
         http.res.content
     with self.assertRaises(AttributeError):
         http.res.status_code
示例#17
0
    def test_http_get_type(self):
        """Test the HTTP GET request return value type"""
        http = HTTP(
            "https://raw.github.com/chrissimpkins/six-four/master/LICENSE")
        http_text = http.get()

        if state.py2:
            self.assertEqual(type(u"test string"), type(http_text))
        else:
            self.assertEqual(type(str("test string")), type(http_text))
示例#18
0
    def run(self):
        from Naked.toolshed.network import HTTP
        http = HTTP(self.url) # use the python.org url for the classifier list

        print('•naked• Pulling the classifier list from python.org...')

        res = http.get() # get the list
        test_list = res.split('\n') # split on newlines

        if self.needle == "": # user did not enter a search string, print the entire list
            print("•naked• You did not provide a search string.  Here is the entire list:")
            print(' ')
            for item in test_list:
                print(item)
        else: # user entered a search string, find it
            lower_needle = self.needle.lower()
            print("•naked• Performing a case insensitive search for '" + self.needle + "'")
            print(' ')
            filtered_list = [ x for x in test_list if lower_needle in x.lower() ] #case insensitive match for the search string
            for item in filtered_list:
                print(item)

        exit_success() # exit with zero status code
示例#19
0
 def test_http_get_status_ssl_redirect(self):
     """Confirm that GET request for a https domain returns appropriate 301 status code when redirects"""
     http = HTTP('https://httpbin.org/status/301')
     http.get(False) # do not allow redirects in order to capture this code
     self.assertEqual(http.res.status_code, 301)
示例#20
0
 def test_http_get_status_ssl(self):
     """Confirm that GET request for a https domain returns appropriate status code"""
     http = HTTP('https://httpbin.org/status/200')
     http.get()
     self.assertEqual(http.res.status_code, 200)
示例#21
0
 def test_http_get_follow_redirects_false_content(self):
     """Test the contents of the returned data from the GET request when site returns non-200 status code"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get(follow_redirects=False)
     self.assertEqual("", http_text)
示例#22
0
 def test_http_get_contents_response_missingsite(self):
     """Test the contents of the GET request response when the site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     self.assertEqual(
         False, http.get())  # returns False if requests ConnectionError
示例#23
0
 def test_http_get_response_object_missingsite(self):
     """Test the GET response object returned by requests when site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     self.assertEqual(None, http.res)
示例#24
0
 def test_http_get_response_method_return_value_missingsite(self):
     """Test the return type from response() method after GET request when non-existent site is requested"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     self.assertEqual(None, http.response())
示例#25
0
 def test_http_get_response_method_return_value_missingsite(self):
     """Test the return type from response() method after GET request when non-existent site is requested"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     self.assertEqual(None, http.response())
示例#26
0
 def test_http_get_status_ssl_redirect(self):
     """Confirm that GET request for a https domain returns appropriate 301 status code when redirects"""
     http = HTTP('https://httpbin.org/status/301')
     http.get(False)  # do not allow redirects in order to capture this code
     self.assertEqual(http.res.status_code, 301)
示例#27
0
 def test_http_get_follow_redirects_false_content(self):
     """Test the contents of the returned data from the GET request when site returns non-200 status code"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get(follow_redirects=False)
     self.assertEqual("", http_text)
示例#28
0
 def test_http_get_follow_redirects_false_on_nofollow_arg(self):
     """Confirm that GET request does not follow redirect and returns non-200 status code when requested"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get(follow_redirects=False)
     self.assertEqual(301, http.res.status_code)
示例#29
0
 def test_http_get_follow_redirects(self):
     """Confirm that the GET request follows redirects and returns 200 status code by default"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get()
     self.assertEqual(200, http.res.status_code)
示例#30
0
 def test_http_get_follow_redirects(self):
     """Confirm that the GET request follows redirects and returns 200 status code by default"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get()
     self.assertEqual(200, http.res.status_code)
示例#31
0
 def test_http_get_response_content_object_missingsite(self):
     """Test the contents of the GET response object returned by requests when site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     with self.assertRaises(AttributeError):
         http.res.content  # confirm that attempt to access the content attribute of res raises Exception when no site
示例#32
0
 def test_http_get_follow_redirects_false_on_nofollow_arg(self):
     """Confirm that GET request does not follow redirect and returns non-200 status code when requested"""
     http = HTTP("http://httpbin.org/status/301")
     http_text = http.get(follow_redirects=False)
     self.assertEqual(301, http.res.status_code)
示例#33
0
 def test_http_get_contents_response_missingsite(self):
     """Test the contents of the GET request response when the site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     self.assertEqual(False, http.get()) # returns False if requests ConnectionError
示例#34
0
 def test_http_get_response_content_object_missingsite(self):
     """Test the contents of the GET response object returned by requests when site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     with self.assertRaises(AttributeError):
         http.res.content # confirm that attempt to access the content attribute of res raises Exception when no site
示例#35
0
 def test_http_get_response_object_missingsite(self):
     """Test the GET response object returned by requests when site is non-existent"""
     http = HTTP('http://www.abogussitename.com')
     http.get()
     self.assertEqual(None, http.res)
示例#36
0
 def test_http_get_status_ssl(self):
     """Confirm that GET request for a https domain returns appropriate status code"""
     http = HTTP('https://httpbin.org/status/200')
     http.get()
     self.assertEqual(http.res.status_code, 200)