def test_issues_from_date(self):
        """Test issues from date API call"""

        # this method cannot be tested, because the next page is encoded
        # in the HTTP response (and not in the query string)
        issues_page_1 = read_file(
            'data/launchpad/launchpad_issues_page_1_no_next')
        httpretty.register_uri(
            httpretty.GET,
            LAUNCHPAD_PACKAGE_PROJECT_URL +
            "?modified_since=2017-08-21T16%3A00%3A00%2B00%3A00&ws.op=searchTasks"
            "&omit_duplicates=false&order_by=date_last_updated&status=Confirmed&status=Expired"
            "&status=Fix+Committed&status=Fix+Released"
            "&status=In+Progress&status=Incomplete&status=Incomplete+%28with+response%29"
            "&status=Incomplete+%28without+response%29"
            "&status=Invalid&status=New&status=Opinion&status=Triaged"
            "&status=Won%27t+Fix"
            "&ws.size=1&ws.start=0",
            body=issues_page_1,
            status=200)

        client = LaunchpadClient("mydistribution",
                                 package='mypackage',
                                 items_per_page=2)
        from_date = datetime.datetime(2018, 8, 21, 16, 0, 0)
        issues = [issues for issues in client.issues(start=from_date)]

        self.assertEqual(len(issues), 1)
示例#2
0
    def test_issues_empty(self):
        """Test when issue is empty API call"""

        empty_issues = read_file('data/launchpad/launchpad_empty_issues')
        httpretty.register_uri(
            httpretty.GET,
            LAUNCHPAD_PACKAGE_PROJECT_URL +
            "?modified_since=1970-01-01T00%3A00%3A00%2B00%3A00&ws.op=searchTasks"
            "&omit_duplicates=false&order_by=date_last_updated&status=Confirmed&status=Expired"
            "&status=Fix+Committed&status=Fix+Released"
            "&status=In+Progress&status=Incomplete&status=Incomplete+%28with+response%29"
            "&status=Incomplete+%28without+response%29"
            "&status=Invalid&status=New&status=Opinion&status=Triaged"
            "&status=Won%27t+Fix"
            "&ws.size=1&ws.start=0",
            body=empty_issues,
            status=200)

        client = LaunchpadClient("mydistribution",
                                 consumer_key=CONSUMER_KEY,
                                 api_token=OAUTH_TOKEN,
                                 package="mypackage")
        issues = [issues for issues in client.issues()]

        self.assertDictEqual(json.loads(issues[0]), json.loads(empty_issues))
示例#3
0
    def test_http_wrong_status_user(self):
        """Test if an empty user is returned when the http status is not 200"""

        client = LaunchpadClient("mydistribution",
                                 consumer_key=CONSUMER_KEY,
                                 api_token=OAUTH_TOKEN,
                                 package="mypackage")
        with self.assertRaises(requests.exceptions.HTTPError):
            _ = client.user("user1")
示例#4
0
    def test_http_wrong_status_issue_collection(self):
        """Test if an empty collection is returned when the http status is not 200"""

        client = LaunchpadClient("mydistribution",
                                 consumer_key=CONSUMER_KEY,
                                 api_token=OAUTH_TOKEN,
                                 package="mypackage")
        with self.assertRaises(requests.exceptions.HTTPError):
            _ = next(client.issue_collection("100", "attachments"))
示例#5
0
    def test_issues(self):
        """Test issues API call"""

        issues_page_1 = read_file('data/launchpad/launchpad_issues_page_1')
        issues_page_2 = read_file('data/launchpad/launchpad_issues_page_2')
        issues_page_3 = read_file('data/launchpad/launchpad_issues_page_3')

        httpretty.register_uri(
            httpretty.GET,
            LAUNCHPAD_PACKAGE_PROJECT_URL +
            "?modified_since=1970-01-01T00%3A00%3A00%2B00%3A00&ws.op=searchTasks"
            "&omit_duplicates=false&order_by=date_last_updated&status=Confirmed&status=Expired"
            "&status=Fix+Committed&status=Fix+Released"
            "&status=In+Progress&status=Incomplete&status=Incomplete+%28with+response%29"
            "&status=Incomplete+%28without+response%29"
            "&status=Invalid&status=New&status=Opinion&status=Triaged"
            "&status=Won%27t+Fix"
            "&ws.size=1&memo=2&ws.start=2",
            body=issues_page_3,
            status=200)
        httpretty.register_uri(
            httpretty.GET,
            LAUNCHPAD_PACKAGE_PROJECT_URL +
            "?modified_since=1970-01-01T00%3A00%3A00%2B00%3A00&ws.op=searchTasks"
            "&omit_duplicates=false&order_by=date_last_updated&status=Confirmed&status=Expired"
            "&status=Fix+Committed&status=Fix+Released"
            "&status=In+Progress&status=Incomplete&status=Incomplete+%28with+response%29"
            "&status=Incomplete+%28without+response%29"
            "&status=Invalid&status=New&status=Opinion&status=Triaged"
            "&status=Won%27t+Fix"
            "&ws.size=1&memo=1&ws.start=1",
            body=issues_page_2,
            status=200)
        httpretty.register_uri(
            httpretty.GET,
            LAUNCHPAD_PACKAGE_PROJECT_URL +
            "?modified_since=1970-01-01T00%3A00%3A00%2B00%3A00&ws.op=searchTasks"
            "&omit_duplicates=false&order_by=date_last_updated&status=Confirmed&status=Expired"
            "&status=Fix+Committed&status=Fix+Released"
            "&status=In+Progress&status=Incomplete&status=Incomplete+%28with+response%29"
            "&status=Incomplete+%28without+response%29"
            "&status=Invalid&status=New&status=Opinion&status=Triaged"
            "&status=Won%27t+Fix"
            "&ws.size=1&ws.start=0",
            body=issues_page_1,
            status=200)

        client = LaunchpadClient("mydistribution",
                                 consumer_key=CONSUMER_KEY,
                                 api_token=OAUTH_TOKEN,
                                 package="mypackage",
                                 items_per_page=2)
        issues = [issues for issues in client.issues()]

        self.assertEqual(len(issues), 3)
    def test_http_wrong_status_user(self):
        """Test if an empty user is returned when the http status is not 200, 404, 410"""

        httpretty.register_uri(httpretty.GET,
                               LAUNCHPAD_API_URL + "/~user1",
                               body="",
                               status=500)

        client = LaunchpadClient("mydistribution", package="mypackage")
        with self.assertRaises(requests.exceptions.HTTPError):
            _ = client.user("user1")
    def test_http_wrong_status_issue_collection(self):
        """Test if an empty collection is returned when the http status is not 200"""

        httpretty.register_uri(httpretty.GET,
                               LAUNCHPAD_API_URL + "/bugs/100/attachments",
                               body="",
                               status=404)

        client = LaunchpadClient("mydistribution", package="mypackage")
        with self.assertRaises(requests.exceptions.HTTPError):
            _ = next(client.issue_collection("100", "attachments"))
    def test_user_not_retrieved(self):
        """Test user API call"""

        httpretty.register_uri(httpretty.GET,
                               LAUNCHPAD_API_URL + "/~user-not",
                               body="",
                               status=404)

        client = LaunchpadClient("mydistribution", package="mypackage")

        user_retrieved = client.user("user-not")
        self.assertEqual(user_retrieved, "{}")
    def test_user(self):
        """Test user API call"""

        user = read_file('data/launchpad/launchpad_user_1')
        httpretty.register_uri(httpretty.GET,
                               LAUNCHPAD_API_URL + "/~user",
                               body=user,
                               status=200)

        client = LaunchpadClient("mydistribution", package="mypackage")
        user_retrieved = client.user("user")

        self.assertDictEqual(json.loads(user_retrieved), json.loads(user))
示例#10
0
    def test_http_wrong_status_user(self):
        """Test if an empty user is returned when the http status is not 200"""

        client = LaunchpadClient("mydistribution", package="mypackage")
        with self.assertRaises(requests.exceptions.HTTPError):
            _ = client.user("user1")