Implemented unittests.
This commit is contained in:
		
							
								
								
									
										41
									
								
								harvester.py
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								harvester.py
									
									
									
									
									
								
							@@ -3,44 +3,5 @@
 | 
			
		||||
from devops import Organization, Project, Repository, Item, DEVOPS_SCOPE
 | 
			
		||||
from azure.identity import DefaultAzureCredential
 | 
			
		||||
from json import dumps
 | 
			
		||||
import tests
 | 
			
		||||
 | 
			
		||||
org = Organization("https://dev.azure.com/mcovsandbox", DefaultAzureCredential().get_token(DEVOPS_SCOPE).token)
 | 
			
		||||
 | 
			
		||||
# Listing projects in the organization
 | 
			
		||||
print(f"Projects in the organization {org._org_url}:")
 | 
			
		||||
for project in org.projects:
 | 
			
		||||
    print(f"- {project.name} (ID: {project.id})")
 | 
			
		||||
print()
 | 
			
		||||
 | 
			
		||||
ado_sandbox = Project(org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727")
 | 
			
		||||
 | 
			
		||||
print(f"Listing repositories in project: {ado_sandbox.name}")
 | 
			
		||||
for repo in ado_sandbox.repositories:
 | 
			
		||||
    print(f"- {repo.name} (ID: {repo.id})")
 | 
			
		||||
print()
 | 
			
		||||
 | 
			
		||||
repo = Repository(ado_sandbox, id="ado-auth-lab")
 | 
			
		||||
print(f"Repository name: {repo.name} and URL: {repo.web_url} (fetched by name)\n")
 | 
			
		||||
 | 
			
		||||
repo = Repository(ado_sandbox, id="feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
print(f"Repository name: {repo.name} and URL: {repo.web_url} (fetched by direct ID)\n")
 | 
			
		||||
 | 
			
		||||
print(f"Listing items in the {repo.name} repository:")
 | 
			
		||||
 | 
			
		||||
for item in repo.items:
 | 
			
		||||
    print(f"{item.path} ({item.git_object_type}): {item.commit_id}")
 | 
			
		||||
print()
 | 
			
		||||
 | 
			
		||||
print("Getting specific item details:")
 | 
			
		||||
item = Item(repo, path="/generate-pat.py")
 | 
			
		||||
print(f"Item path: {item.path}")
 | 
			
		||||
print(f"Item type: {item.git_object_type}")
 | 
			
		||||
print(f"Item commit ID: {item.commit_id}")
 | 
			
		||||
print(f"Item URL: {item.url}")
 | 
			
		||||
print()
 | 
			
		||||
 | 
			
		||||
print("Listing items under the /container folder:")
 | 
			
		||||
docs_item = Item(repo, path="/container")
 | 
			
		||||
for sub_item in docs_item.children:
 | 
			
		||||
    print(f"{sub_item.path} ({sub_item.git_object_type}): {sub_item.commit_id}")
 | 
			
		||||
print()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								tests.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								tests.py
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
import unittest
 | 
			
		||||
from devops import DEVOPS_SCOPE, Organization, Repository, Project, Item
 | 
			
		||||
from azure.identity import DefaultAzureCredential
 | 
			
		||||
 | 
			
		||||
# 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)
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
    def test_listing_projects_in_organization(self):
 | 
			
		||||
        org = self.org
 | 
			
		||||
        projects = list(org.projects)
 | 
			
		||||
        self.assertGreater(len(projects), 0)
 | 
			
		||||
 | 
			
		||||
    def test_listing_repositories_in_project(self):
 | 
			
		||||
        project = Project(self.org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727")
 | 
			
		||||
        repos = list(project.repositories)
 | 
			
		||||
        self.assertGreater(len(repos), 0)
 | 
			
		||||
 | 
			
		||||
    def test_fetching_repository_by_name_or_id(self):
 | 
			
		||||
        project = Project(self.org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727")
 | 
			
		||||
        self.assertIsNotNone(project)
 | 
			
		||||
        repo_by_name = Repository(project, id="ado-auth-lab")
 | 
			
		||||
        self.assertIsNotNone(repo_by_name)
 | 
			
		||||
        self.assertEqual(repo_by_name.name, "ado-auth-lab")
 | 
			
		||||
        self.assertEqual(repo_by_name.id, "feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
        repo_by_id = Repository(project, id="feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
        self.assertEqual(repo_by_id.name, "ado-auth-lab")
 | 
			
		||||
        self.assertEqual(repo_by_id.id, "feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
 | 
			
		||||
    def test_listing_items_in_repository(self):
 | 
			
		||||
        repo = Repository(Project(self.org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727"), id="feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
        items = list(repo.items)
 | 
			
		||||
        self.assertGreater(len(items), 0)
 | 
			
		||||
 | 
			
		||||
    def test_getting_specific_item_details(self):
 | 
			
		||||
        item = Item(Repository(Project(self.org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727"), id="feac266f-84d2-41bc-839b-736925a85eaa"), path="/generate-pat.py")
 | 
			
		||||
        self.assertEqual(item.path, "/generate-pat.py")
 | 
			
		||||
        self.assertIsNotNone(item.commit_id)
 | 
			
		||||
 | 
			
		||||
    def test_listing_descendant_items_in_folder(self):
 | 
			
		||||
        repo = Repository(Project(self.org, id="bafe0cf1-6c97-4088-864a-ea6dc02b2727"), id="feac266f-84d2-41bc-839b-736925a85eaa")
 | 
			
		||||
        docs_item = Item(repo, path="/container")
 | 
			
		||||
        children = list(docs_item.children)
 | 
			
		||||
        self.assertGreater(len(children), 0)
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    unittest.main()
 | 
			
		||||
		Reference in New Issue
	
	Block a user