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))
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()
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
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')
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')
def test_github_client(): cli = GithubClient('diegoponciano') assert cli
def test_github_client_requires_username(): with pytest.raises(TypeError): GithubClient()