Beispiel #1
0
    def test_ingest_element_no_versions(self):
        self.respond_to_github(
            'https://raw.githubusercontent.com/org/repo/master/bower.json',
            '{"license": "MIT"}')
        self.respond_to_github('https://api.github.com/repos/org/repo',
                               '{"owner":{"login":"******"},"name":"repo"}')
        self.respond_to_github(
            'https://api.github.com/repos/org/repo/contributors', '["a"]')
        self.respond_to_github('https://api.github.com/repos/org/repo/tags',
                               '''[]''')
        self.respond_to_github(
            'https://api.github.com/repos/org/repo/stats/participation', '{}')
        response = self.app.get(util.ingest_library_task('org', 'repo'),
                                headers={'X-AppEngine-QueueName': 'default'})

        self.assertEqual(response.status_int, 200)
        library = Library.get_by_id('org/repo')
        self.assertIsNotNone(library)
        self.assertIsNotNone(library.error)
        self.assertIsNotNone(json.loads(library.error).get('code', None))

        self.assertEqual(library.metadata,
                         '{"owner":{"login":"******"},"name":"repo"}')
        self.assertEqual(library.contributors, '["a"]')
        self.assertEqual(library.tags, [])

        tasks = self.tasks.get_filtered_tasks()
        self.assertEqual([
            util.ensure_author_task('org'),
        ], [task.url for task in tasks])
Beispiel #2
0
  def test_ingest_element(self):
    self.respond_to_github('https://raw.githubusercontent.com/org/repo/master/bower.json', '{"license": "MIT"}')
    self.respond_to_github('https://api.github.com/repos/org/repo', '{"owner":{"login":"******"},"name":"repo"}')
    self.respond_to_github('https://api.github.com/repos/org/repo/contributors', '["a"]')
    self.respond_to_github('https://api.github.com/repos/org/repo/tags', '''[{"name": "v0.5.0", "commit": {"sha": "old"}},{"name": "v1.0.0", "commit": {"sha": "lol"}}]''')
    self.respond_to_github('https://api.github.com/repos/org/repo/stats/participation', '{}')
    response = self.app.get(util.ingest_library_task('org', 'repo'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)
    library = Library.get_by_id('org/repo')
    self.assertIsNotNone(library)
    self.assertIsNone(library.error)
    self.assertEqual(library.metadata, '{"owner":{"login":"******"},"name":"repo"}')
    self.assertEqual(library.contributors, '["a"]')
    self.assertEqual(library.tags, ['v0.5.0', 'v1.0.0'])

    version = ndb.Key(Library, 'org/repo', Version, 'v1.0.0').get()
    self.assertIsNotNone(version)
    self.assertIsNone(version.error)
    self.assertEqual(version.sha, 'lol')

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_analysis_task('org', 'repo', 'v1.0.0'),
        util.ensure_author_task('org'),
        util.ingest_version_task('org', 'repo', 'v1.0.0'),
    ], [task.url for task in tasks])
Beispiel #3
0
  def test_ingest_collection(self):
    self.respond_to_github('https://raw.githubusercontent.com/org/repo/master/bower.json', '{"keywords": ["element-collection"], "license": "MIT"}')
    self.respond_to_github('https://api.github.com/repos/org/repo', '{"owner":{"login":"******"},"name":"repo"}')
    self.respond_to_github('https://api.github.com/repos/org/repo/contributors', '["a"]')
    self.respond_to_github('https://api.github.com/repos/org/repo/git/refs/heads/master', '{"ref": "refs/heads/master", "object": {"sha": "master-sha"}}')
    self.respond_to_github('https://api.github.com/repos/org/repo/stats/participation', '{}')
    response = self.app.get(util.ingest_library_task('org', 'repo'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)
    library = Library.get_by_id('org/repo')
    self.assertIsNotNone(library)
    self.assertIsNone(library.error)
    self.assertEqual(library.metadata, '{"owner":{"login":"******"},"name":"repo"}')
    self.assertEqual(library.contributors, '["a"]')
    self.assertEqual(library.tags, ['v0.0.1'])

    version = ndb.Key(Library, 'org/repo', Version, 'v0.0.1').get()
    self.assertIsNone(version.error)
    self.assertEqual(version.status, Status.pending)
    self.assertEqual(version.sha, 'master-sha')

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_analysis_task('org', 'repo', 'v0.0.1', 'master-sha'),
        util.ensure_author_task('org'),
        util.ingest_version_task('org', 'repo', 'v0.0.1'),
    ], [task.url for task in tasks])
Beispiel #4
0
  def test_ingest_collection(self):
    self.respond_to_github('https://raw.githubusercontent.com/org/repo/master/bower.json', '{"keywords": ["element-collection"], "license": "MIT"}')
    self.respond_to_github('https://api.github.com/repos/org/repo', '{"owner":{"login":"******"},"name":"repo"}')
    self.respond_to_github('https://api.github.com/repos/org/repo/contributors', '["a"]')
    self.respond_to_github('https://api.github.com/repos/org/repo/git/refs/heads/master', '{"ref": "refs/heads/master", "object": {"sha": "master-sha"}}')
    self.respond_to_github('https://api.github.com/repos/org/repo/stats/participation', '{}')
    response = self.app.get(util.ingest_library_task('org', 'repo'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)
    library = Library.get_by_id('org/repo')
    self.assertIsNotNone(library)
    self.assertIsNone(library.error)
    self.assertEqual(library.metadata, '{"owner":{"login":"******"},"name":"repo"}')
    self.assertEqual(library.contributors, '["a"]')
    self.assertEqual(library.tags, ['v0.0.1'])

    version = ndb.Key(Library, 'org/repo', Version, 'v0.0.1').get()
    self.assertIsNone(version.error)
    self.assertEqual(version.status, Status.pending)
    self.assertEqual(version.sha, 'master-sha')

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_analysis_task('org', 'repo', 'v0.0.1', 'master-sha'),
        util.ensure_author_task('org'),
        util.ingest_version_task('org', 'repo', 'v0.0.1'),
    ], [task.url for task in tasks])
Beispiel #5
0
  def test_ingest_element(self):
    self.respond_to_github('https://raw.githubusercontent.com/org/repo/master/bower.json', '{"license": "MIT"}')
    self.respond_to_github('https://api.github.com/repos/org/repo', '{"owner":{"login":"******"},"name":"repo"}')
    self.respond_to_github('https://api.github.com/repos/org/repo/contributors', '["a"]')
    self.respond_to_github('https://api.github.com/repos/org/repo/tags', '''[{"name": "v0.5.0", "commit": {"sha": "old"}},{"name": "v1.0.0", "commit": {"sha": "lol"}}]''')
    self.respond_to_github('https://api.github.com/repos/org/repo/stats/participation', '{}')
    response = self.app.get(util.ingest_library_task('org', 'repo'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)
    library = Library.get_by_id('org/repo')
    self.assertIsNotNone(library)
    self.assertIsNone(library.error)
    self.assertEqual(library.metadata, '{"owner":{"login":"******"},"name":"repo"}')
    self.assertEqual(library.contributors, '["a"]')
    self.assertEqual(library.tags, ['v0.5.0', 'v1.0.0'])

    version = ndb.Key(Library, 'org/repo', Version, 'v1.0.0').get()
    self.assertIsNotNone(version)
    self.assertIsNone(version.error)
    self.assertEqual(version.sha, 'lol')

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_analysis_task('org', 'repo', 'v1.0.0'),
        util.ensure_author_task('org'),
        util.ingest_version_task('org', 'repo', 'v1.0.0'),
    ], [task.url for task in tasks])
Beispiel #6
0
  def test_ensure_when_present(self):
    Author(id='author').put()
    response = self.app.get(util.ensure_author_task('author'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([], [task.url for task in tasks])
Beispiel #7
0
  def test_ensure_when_present(self):
    Author(id='author').put()
    response = self.app.get(util.ensure_author_task('author'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([], [task.url for task in tasks])
Beispiel #8
0
  def test_ensure_when_missing(self):
    response = self.app.get(util.ensure_author_task('author'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_author_task('author'),
    ], [task.url for task in tasks])
Beispiel #9
0
  def test_ensure_when_missing(self):
    response = self.app.get(util.ensure_author_task('author'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ingest_author_task('author'),
    ], [task.url for task in tasks])
Beispiel #10
0
  def test_ingest_element_no_versions(self):
    self.respond_to_github('https://raw.githubusercontent.com/org/repo/master/bower.json', '{"license": "MIT"}')
    self.respond_to_github('https://api.github.com/repos/org/repo', '{"owner":{"login":"******"},"name":"repo"}')
    self.respond_to_github('https://api.github.com/repos/org/repo/contributors', '["a"]')
    self.respond_to_github('https://api.github.com/repos/org/repo/tags', '''[]''')
    self.respond_to_github('https://api.github.com/repos/org/repo/stats/participation', '{}')
    response = self.app.get(util.ingest_library_task('org', 'repo'), headers={'X-AppEngine-QueueName': 'default'})

    self.assertEqual(response.status_int, 200)
    library = Library.get_by_id('org/repo')
    self.assertIsNotNone(library)
    self.assertIsNotNone(library.error)
    self.assertEqual(library.metadata, '{"owner":{"login":"******"},"name":"repo"}')
    self.assertEqual(library.contributors, '["a"]')
    self.assertEqual(library.tags, [])

    tasks = self.tasks.get_filtered_tasks()
    self.assertEqual([
        util.ensure_author_task('org'),
    ], [task.url for task in tasks])
Beispiel #11
0
 def trigger_author_ingestion(self):
   if self.library.shallow_ingestion:
     return
   task_url = util.ensure_author_task(self.owner)
   util.new_task(task_url, target='manage', transactional=True)
Beispiel #12
0
 def trigger_author_ingestion(self):
     if self.library.shallow_ingestion:
         return
     task_url = util.ensure_author_task(self.owner)
     util.new_task(task_url, target='manage', transactional=True)