Exemple #1
0
 def test_git(self):
     repo = Repository(
         url='http://example.com/git-repo',
         backend=RepositoryBackend.git,
     )
     result = repo.get_vcs()
     assert type(result) == GitVcs
Exemple #2
0
 def test_unknown(self):
     repo = Repository(
         url='http://example.com/git-repo',
         backend=RepositoryBackend.unknown,
     )
     result = repo.get_vcs()
     assert result is None
Exemple #3
0
 def test_hg(self):
     repo = Repository(
         url='http://example.com/git-repo',
         backend=RepositoryBackend.hg,
     )
     result = repo.get_vcs()
     assert type(result) == MercurialVcs
Exemple #4
0
    def create_repo(self, **kwargs):
        kwargs.setdefault('url', 'http://example.com/{0}'.format(uuid4().hex))

        repo = Repository(**kwargs)
        db.session.add(repo)
        db.session.commit()

        return repo
Exemple #5
0
def repository(**kwargs):
    if 'url' not in kwargs:
        kwargs['url'] = 'https://github.com/example-{0}/example.git'.format(
            random.randint(1, 100000))

    try:
        result = Repository.query.filter_by(url=kwargs['url'])[0]
    except IndexError:
        result = Repository(**kwargs)
        db.session.add(result)
    return result
Exemple #6
0
def test_simple():
    revision = Revision(
        sha='33846695b2774b29a71795a009e8168a',
        repository=Repository(),
        author=Author(
            name='Foo Bar',
            email='*****@*****.**',
        ),
        parents=['a' * 40],
        branches=['master'],
        message='hello world',
        date_created=datetime(2013, 9, 19, 22, 15, 22),
    )
    result = serialize(revision)
    assert result['id'] == '33846695b2774b29a71795a009e8168a'
    assert result['author']['name'] == 'Foo Bar'
    assert result['author']['email'] == '*****@*****.**'
    assert result['message'] == 'hello world'
    assert result['dateCreated'] == '2013-09-19T22:15:22'
    assert result['parents'] == ['a' * 40]
    assert result['branches'] == ['master']
    def post(self):
        args = self.post_parser.parse_args()

        match = Repository.query.filter(Repository.url == args.url, ).first()
        if match:
            return '{"error": "Repository with url %r already exists"}' % (
                args.url, ), 400

        repo = Repository(
            url=args.url,
            backend=RepositoryBackend[args.backend],
            status=RepositoryStatus.importing,
        )
        db.session.add(repo)
        db.session.commit()

        import_repo.delay(
            repo_id=repo.id.hex,
            task_id=repo.id.hex,
        )

        return self.respond(repo)
Exemple #8
0
 def _create_repository(self):
     return Repository(
         url='http://example.com/git-repo',
         backend=RepositoryBackend.git,
     )