def test_recent(owner_name: str, app_name: str, token: str): """Test recent.""" client = appcenter.AppCenterClient(access_token=token) recent_builds = client.versions.recent(owner_name=owner_name, app_name=app_name) for build in recent_builds: print(build)
def test_annotations(owner_name: str, app_name: str, token: str): """Test construction.""" client = appcenter.AppCenterClient(access_token=token) group_id = None annotation = str(uuid.uuid4()) for result in client.crashes.get_error_groups( owner_name=owner_name, app_name=app_name, start_time=datetime.datetime.now() - datetime.timedelta(days=60), order_by="count desc", limit=1, ): group_id = result.errorGroupId break assert group_id is not None client.crashes.set_annotation( owner_name=owner_name, app_name=app_name, error_group_id=group_id, annotation=annotation, ) details = client.crashes.group_details( owner_name=owner_name, app_name=app_name, error_group_id=group_id, ) assert details.annotation == annotation
def test_annotations(self): """Test construction.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) group_id = None annotation = str(uuid.uuid4()) for result in client.crashes.get_error_groups( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, start_time=datetime.datetime(2019, 9, 20, 12, 0, 0), order_by="count desc", limit=1, ): group_id = result.errorGroupId break client.crashes.set_annotation( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, error_group_id=group_id, annotation=annotation, ) details = client.crashes.group_details( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, error_group_id=group_id, ) self.assertEqual(details.annotation, annotation)
def test_users(self): """Test construction.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) users = client.account.users(owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME) self.assertTrue(len(users) > 0) testers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission .tester, users)) viewers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission .viewer, users)) developers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission .developer, users)) managers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission .manager, users)) self.assertLessEqual(len(testers), len(users)) self.assertLessEqual(len(viewers), len(users)) self.assertLessEqual(len(developers), len(users)) self.assertLessEqual(len(managers), len(users)) self.assertEqual( len(testers) + len(viewers) + len(developers) + len(managers), len(users))
def test_recent(self): """Test recent.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) recent_builds = client.versions.recent( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME) for build in recent_builds: print(build)
def test_release_id(owner_name: str, app_name: str, token: str): """Test release id check.""" client = appcenter.AppCenterClient(access_token=token) release_id = client.versions.release_id_for_version(owner_name=owner_name, app_name=app_name, version="2917241") print(release_id)
def test_users(owner_name: str, app_name: str, token: str): """Test construction.""" client = appcenter.AppCenterClient(access_token=token) users = client.account.users(owner_name=owner_name, app_name=app_name) assert len(users) > 0 testers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission. TESTER, users)) viewers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission. VIEWER, users)) developers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission. DEVELOPER, users)) managers = list( filter( lambda user: user.permissions[0] == appcenter.models.Permission. MANAGER, users)) assert len(testers) <= len(users) assert len(viewers) <= len(users) assert len(developers) <= len(users) assert len(managers) <= len(users) assert len(testers) + len(viewers) + len(developers) + len( managers) == len(users)
def test_release_id(self): """Test release id check.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) release_id = client.versions.release_id_for_version( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, version="2917241") print(release_id)
def test_create_delete_tokens(token: str): """Test creating and deleting tokens.""" client = appcenter.AppCenterClient(access_token=token) name = "appcenter test token" new_token = client.tokens.create_user_token( name, appcenter.AppCenterTokensClient.TokenScope.FULL) assert new_token.description == name client.tokens.delete_user_token(new_token)
def test_construction(owner_name: str, app_name: str, token: str): """Test construction.""" client = appcenter.AppCenterClient(access_token=token) start_time = datetime.datetime.now() - datetime.timedelta(days=10) # Test to fetch at least 2 error group batches error_group_batch_limit = 2 error_group_batch_count = 0 for group in client.crashes.get_error_groups( owner_name=owner_name, app_name=app_name, start_time=start_time, order_by="count desc", limit=1, ): group_details = client.crashes.group_details( owner_name=owner_name, app_name=app_name, error_group_id=group.errorGroupId, ) assert group_details is not None errors = client.crashes.errors_in_group( owner_name=owner_name, app_name=app_name, start_time=start_time, error_group_id=group.errorGroupId, ) has_errors = False for error in errors: assert error.errorId is not None error_details = client.crashes.error_details( owner_name=owner_name, app_name=app_name, error_group_id=group.errorGroupId, error_id=error.errorId, ) assert error_details is not None full_details = client.crashes.error_info_dictionary( owner_name=owner_name, app_name=app_name, error_group_id=group.errorGroupId, error_id=error.errorId, ) assert full_details is not None has_errors = True break assert has_errors error_group_batch_count += 1 if error_group_batch_count == error_group_batch_limit: break
def test_construction(self): """Test construction.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) start_time = datetime.datetime.now() - datetime.timedelta(days=10) # Test to fetch at least 2 error group batches error_group_batch_limit = 2 error_group_batch_count = 0 for group in client.crashes.get_error_groups( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, start_time=start_time, order_by="count desc", limit=1, ): details = client.crashes.group_details( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, error_group_id=group.errorGroupId, ) self.assertIsNotNone(details) errors = client.crashes.errors_in_group( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, start_time=start_time, error_group_id=group.errorGroupId, ) has_errors = False for error in errors: details = client.crashes.error_details( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, error_group_id=group.errorGroupId, error_id=error.errorId, ) self.assertIsNotNone(details) full_details = client.crashes.error_info_dictionary( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, error_group_id=group.errorGroupId, error_id=error.errorId, ) self.assertIsNotNone(full_details) has_errors = True break self.assertTrue(has_errors) error_group_batch_count += 1 if error_group_batch_count == error_group_batch_limit: break
def test_symbol_upload(self): """Test symbol.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) client.crashes.upload_symbols( owner_name=LibraryTests.OWNER_NAME, app_name="UploadTestApp", version="0.1", build_number="123", symbols_path="/path/to/some.dSYM.zip", symbol_type=appcenter.models.SymbolType.apple, )
def test_release_details(owner_name: str, app_name: str, token: str): """Test release details.""" client = appcenter.AppCenterClient(access_token=token) recent_builds = client.versions.recent(owner_name=owner_name, app_name=app_name) build = recent_builds[0] full_details = client.versions.release_details( owner_name=owner_name, app_name=app_name, release_id=build.identifier, ) print(full_details)
def test_release_details(self): """Test release details.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) recent_builds = client.versions.recent( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME) build = recent_builds[0] full_details = client.versions.release_details( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, release_id=build.identifier, ) print(full_details)
def test_upload(self): """Test upload.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) download_url = client.versions.upload_and_release( owner_name=LibraryTests.OWNER_NAME, app_name="UploadTestApp", version="0.1", build_number="123", binary_path="/path/to/some.ipa", group_id="3b2e51c1-5d07-4d04-8980-14d3b91e1a1c", release_notes="These are some release notes", branch_name="test_branch", commit_hash="1234567890123456789012345678901234567890", commit_message="This is a commit message", ) self.assertIsNotNone(download_url)
def test_upload(owner_name: str, token: str): """Test upload.""" ipa_path = "/path/to/some.ipa" if not os.path.exists(ipa_path): return client = appcenter.AppCenterClient(access_token=token) release_id = client.versions.upload_build( owner_name=owner_name, app_name="UploadTestApp", binary_path=ipa_path, release_notes="These are some release notes", branch_name="test_branch", commit_hash="1234567890123456789012345678901234567890", commit_message="This is a commit message", ) assert release_id is not None
def test_symbol_upload(owner_name: str, token: str): """Test symbol.""" symbols_path = "/path/to/some.dSYM.zip" if not os.path.isfile(symbols_path): return client = appcenter.AppCenterClient(access_token=token) client.crashes.upload_symbols( owner_name=owner_name, app_name="UploadTestApp", version="0.1", build_number="123", symbols_path=symbols_path, symbol_type=appcenter.models.SymbolType.APPLE, )
def test_release_counts(self): """Test release details.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) recent_builds = client.versions.recent( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME) build = recent_builds[0] full_details = client.versions.release_details( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, release_id=build.identifier, ) counts = client.analytics.release_counts( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME, releases=[ appcenter.models.ReleaseWithDistributionGroup( full_details.identifier, full_details.destinations[0].identifier) ], ) print(counts)
def test_release_counts(owner_name: str, app_name: str, token: str): """Test release details.""" client = appcenter.AppCenterClient(access_token=token) recent_builds = client.versions.recent(owner_name=owner_name, app_name=app_name) build = recent_builds[0] full_details = client.versions.release_details( owner_name=owner_name, app_name=app_name, release_id=build.identifier, ) assert full_details.destinations is not None counts = client.analytics.release_counts( owner_name=owner_name, app_name=app_name, releases=[ appcenter.models.ReleaseWithDistributionGroup( full_details.identifier, full_details.destinations[0].identifier) ], ) print(counts)
owner_name = os.environ.get('APPCENTER_OWNER') app_name = os.environ.get('APPCENTER_APP') access_token = os.environ.get('APPCENTER_TOKEN') if ( not owner_name or not app_name or not access_token ): print(''' Help: set env variables APPCENTER_OWNER APPCENTER_APP APPCENTER_TOKEN ''') exit(0) appcenter = appcenter.AppCenterClient(owner_name=owner_name, app_name=app_name, access_token=access_token) branch_list = [] [branch_list.append(b.branch) for b in appcenter.branches.all()] print('\nBranches:') [print(b.name) for b in branch_list] print('\nStarting builds:') for i in range(len(branch_list[:])): #if not 'master' in branch_list[i].name: continue build = appcenter.branches.build(branch_name=branch_list[i].name, commit=branch_list[i].commit.sha) branch_list[i].build = build print(f'started build id {branch_list[i].build.id}, № {build.buildNumber} ' f'for branch {branch_list[i].name}')
def test_latest_commit(owner_name: str, app_name: str, token: str): """Test release details.""" client = appcenter.AppCenterClient(access_token=token) commit_hash = client.versions.latest_commit(owner_name=owner_name, app_name=app_name) assert commit_hash is not None
def test_latest_commit(self): """Test release details.""" client = appcenter.AppCenterClient(access_token=LibraryTests.TOKEN) commit_hash = client.versions.latest_commit( owner_name=LibraryTests.OWNER_NAME, app_name=LibraryTests.APP_NAME) self.assertIsNotNone(commit_hash)
def test_get_tokens(token: str): """Test get tokens.""" client = appcenter.AppCenterClient(access_token=token) tokens = client.tokens.get_user_tokens() assert len(tokens) > 0