Esempio n. 1
0
 def test_parse_json_threshold_reached(self):
     """
     Assert that exception is thrown when
     rate limit threshold is reached.
     """
     project = models.Project(
         name="foobar",
         homepage="https://foobar.com",
         version_url="foo/bar",
         backend=BACKEND,
     )
     json = {
         "data": {
             "repository": {
                 "refs": {
                     "totalCount": 0
                 }
             },
             "rateLimit": {
                 "limit": 5000,
                 "remaining": 500,
                 "resetAt": "2008-09-03T20:56:35.450686",
             },
         }
     }
     with self.assertRaises(RateLimitException):
         backend.parse_json(json, project)
     self.assertEqual(backend.reset_time, "2008-09-03T20:56:35.450686")
Esempio n. 2
0
    def test_parse_json_with_errors(self):
        """Test parsing JSON flagging errors."""
        json = {"errors": [{"type": "FOO", "message": "BAR"}]}

        with self.assertRaises(AnityaPluginException) as excinfo:
            backend.parse_json(json, self.project)

        self.assertIn('"FOO": "BAR"', str(excinfo.exception))
Esempio n. 3
0
 def test_parse_json_threshold_exceeded(self):
     """Test behavior when rate limit threshold is exceeded."""
     # Limit reached
     json = {
         "data": {
             "repository": {"refs": {"totalCount": 0}},
             "rateLimit": {
                 "limit": 5000,
                 "remaining": 0,
                 "resetAt": "2008-09-03T20:56:35.450686",
             },
         }
     }
     with self.assertRaises(RateLimitException):
         backend.parse_json(json, self.project)
     self.assertEqual(backend.reset_time, "2008-09-03T20:56:35.450686")
Esempio n. 4
0
 def test_parse_json(self):
     """Test parsing a JSON response without errors."""
     json = {
         "data": {
             "repository": {
                 "refs": {
                     "totalCount": 1,
                     "edges": [
                         {
                             "node": {
                                 "name": "1.0",
                                 "target": {
                                     "commitUrl": "https://foobar.com/foo/bar/commits/12345678"
                                 },
                             },
                         }
                     ],
                 },
             },
             "rateLimit": {"limit": 5000, "remaining": 5000, "resetAt": "dummy"},
         }
     }
     exp = [
         {
             "version": "1.0",
             "commit_url": "https://foobar.com/foo/bar/commits/12345678",
         }
     ]
     obs = backend.parse_json(json, self.project)
     self.assertEqual(exp, obs)
Esempio n. 5
0
 def test_parse_json_tag_missing(self):
     """Test parsing a JSON skips releases where tag is missing."""
     project = models.Project(
         name="foobar",
         homepage="https://foobar.com",
         version_url="foo/bar",
         backend=BACKEND,
         releases_only=True,
     )
     json = {
         "data": {
             "repository": {
                 "releases": {
                     "totalCount":
                     1,
                     "edges": [
                         {
                             "node": {
                                 "name": "This is a release",
                                 "tag": None
                             },
                         },
                     ],
                 },
             },
             "rateLimit": {
                 "limit": 5000,
                 "remaining": 5000,
                 "resetAt": "dummy"
             },
         }
     }
     obs = backend.parse_json(json, project)
     self.assertEqual([], obs)
Esempio n. 6
0
    def test_parse_json(self):
        """ Assert parsing json"""
        project = models.Project(
            name='foobar',
            homepage='https://foobar.com',
            version_url='foo/bar',
            backend=BACKEND,
        )
        json = {"errors": [{"type": "FOO", "message": "BAR"}]}

        self.assertRaises(AnityaPluginException, backend.parse_json, json,
                          project)

        # Limit reached
        json = {
            "data": {
                "repository": {
                    "refs": {
                        "totalCount": 0
                    }
                },
                "rateLimit": {
                    "limit": 5000,
                    "remaining": 0,
                    "resetAt": "2008-09-03T20:56:35.450686"
                }
            }
        }
        self.assertRaises(RateLimitException, backend.parse_json, json,
                          project)

        json = {
            "data": {
                "repository": {
                    "refs": {
                        "totalCount": 1,
                        "edges": [{
                            "node": {
                                "name": "1.0"
                            }
                        }]
                    }
                },
                "rateLimit": {
                    "limit": 5000,
                    "remaining": 5000,
                    "resetAt": "dummy"
                }
            }
        }
        exp = [u'1.0']
        obs = backend.parse_json(json, project)
        self.assertEqual(exp, obs)
Esempio n. 7
0
    def test_parse_json(self):
        """ Assert parsing json"""
        project = models.Project(
            name="foobar",
            homepage="https://foobar.com",
            version_url="foo/bar",
            backend=BACKEND,
        )
        json = {"errors": [{"type": "FOO", "message": "BAR"}]}

        self.assertRaises(AnityaPluginException, backend.parse_json, json, project)

        # Limit reached
        json = {
            "data": {
                "repository": {"refs": {"totalCount": 0}},
                "rateLimit": {
                    "limit": 5000,
                    "remaining": 0,
                    "resetAt": "2008-09-03T20:56:35.450686",
                },
            }
        }
        self.assertRaises(RateLimitException, backend.parse_json, json, project)

        json = {
            "data": {
                "repository": {
                    "refs": {"totalCount": 1, "edges": [{"node": {"name": "1.0"}}]}
                },
                "rateLimit": {"limit": 5000, "remaining": 5000, "resetAt": "dummy"},
            }
        }
        exp = [u"1.0"]
        obs = backend.parse_json(json, project)
        self.assertEqual(exp, obs)