예제 #1
0
 def handle(self, *args, **options):
     username = options['username']
     if not get_user_model().objects.filter(username=username).exists():
         raise CommandError(
             'Usuário "%s" ainda não existe. Crie um com o comando "createsuperuser".'
             % username)
     cli = GithubClient(username)
     cli.sync_repos()
     self.stdout.write(
         self.style.SUCCESS(
             'Repositórios do "%s" sincronizados com sucesso.' % username))
예제 #2
0
def test_sync_create_repo_instances(mocker, user):
    GithubRepo.objects.all().delete()
    repos = {
        'edges': random_repos(10),
        'cursor': random_gen.gen_string(12),
        'pageInfo': {
            'endCursor': random_gen.gen_string(12),
            'hasNextPage': False
        }
    }
    mocker.patch('core.services.query_repos', return_value=repos)

    cli = GithubClient(user.username)
    cli.sync_repos()

    assert GithubRepo.objects.filter(user=user).count() == 10
    assert GithubRepo.objects.filter(
        repo_id=repos['edges'][0]['node']['id']).exists()
    assert GithubRepo.objects.filter(
        name=repos['edges'][0]['node']['name']).exists()
    assert GithubRepo.objects.filter(
        url=repos['edges'][0]['node']['url']).exists()
예제 #3
0
def test_sync_does_not_duplicate(mocker, user):
    GithubRepo.objects.all().delete()
    repos = {
        'edges': random_repos(10),
        'cursor': random_gen.gen_string(12),
        'pageInfo': {
            'endCursor': random_gen.gen_string(12),
            'hasNextPage': False
        }
    }
    mocker.patch('core.services.query_repos', return_value=repos)

    cli = GithubClient(user.username)
    cli.sync_repos()

    assert GithubRepo.objects.filter(user=user).count() == 10

    cli.sync_repos()

    assert GithubRepo.objects.filter(user=user).count() == 10
예제 #4
0
def test_sync_call_with_django_user(mocker, user):
    mocker.patch('core.services.get_repos', return_value=[])

    cli = GithubClient(user.username)
    cli.sync_repos()
    core.services.get_repos.assert_called_once_with('diegoponciano')
예제 #5
0
def test_sync_call(mocker):
    mocker.patch('core.services.get_repos', return_value=[])

    cli = GithubClient('randomweirdo')
    cli.sync_repos()
    core.services.get_repos.assert_called_once_with('randomweirdo')
예제 #6
0
def test_github_client():
    cli = GithubClient('diegoponciano')
    assert cli
예제 #7
0
def test_github_client_requires_username():
    with pytest.raises(TypeError):
        GithubClient()