diff --git a/devops.py b/devops.py index 6667dd8..2846268 100644 --- a/devops.py +++ b/devops.py @@ -1,6 +1,7 @@ import requests import urllib.parse from uuid import UUID +from azure.identity import DefaultAzureCredential DEVOPS_SCOPE = "https://app.vssps.visualstudio.com/.default" DEVOPS_API_VERSION = "7.1" @@ -105,7 +106,9 @@ class DevOps(): return entities_list class Organization(DevOps): - def __init__(self, org_url: str, token: str, api_version: str = DEVOPS_API_VERSION): + def __init__(self, org_url: str, token: str | None = None, api_version: str = DEVOPS_API_VERSION): + if token is None: + token = DefaultAzureCredential().get_token(DEVOPS_SCOPE).token super().__init__(org_url, token, api_version) @property diff --git a/tests.py b/tests.py index f7138c2..cdb48a2 100755 --- a/tests.py +++ b/tests.py @@ -1,15 +1,14 @@ #!/usr/bin/env python3 import unittest -from devops import DEVOPS_SCOPE, Organization, Repository, Project, Item -from azure.identity import DefaultAzureCredential +from devops import Organization, Repository, Project, Item -# Example: set up your org here if possible, or mock as needed -# org = Organization("https://dev.azure.com/mcovsandbox", DefaultAzureCredential().get_token(DEVOPS_SCOPE).token) +# Setup the Organization object outside the test class to speed up tests. +# Each Unit test instantinates the class, so doing it here avoids repeated authentication. +org = Organization("https://dev.azure.com/mcovsandbox") class TestDevOps(unittest.TestCase): def setUp(self): - # Set up your Organization object here if possible - self.org = Organization("https://dev.azure.com/mcovsandbox", DefaultAzureCredential().get_token(DEVOPS_SCOPE).token) + self.org = org def test_listing_projects_in_organization(self): org = self.org