Exemple #1
0
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)
Exemple #2
0
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
Exemple #3
0
    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)
Exemple #4
0
    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))
Exemple #5
0
 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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
 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)
Exemple #9
0
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)
Exemple #10
0
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
Exemple #11
0
    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
Exemple #12
0
 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,
     )
Exemple #13
0
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)
Exemple #14
0
 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)
Exemple #15
0
 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)
Exemple #16
0
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
Exemple #17
0
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,
    )
Exemple #18
0
 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)
Exemple #19
0
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)
Exemple #20
0
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}')
Exemple #21
0
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
Exemple #22
0
 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)
Exemple #23
0
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