Autoscale test: I (#278)

This commit is contained in:
Anshuman Goel
2020-11-11 07:53:47 -08:00
committed by GitHub
parent 439a58f8a2
commit 3cade0800d
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,4 @@
#!/usr/bin/env python
#
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

View File

@ -0,0 +1,65 @@
#!/usr/bin/env python
#
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
import unittest
from unittest.mock import MagicMock, patch
from uuid import UUID
from onefuzztypes.enums import OS, Architecture, ContainerType, TaskType
from onefuzztypes.models import TaskConfig, TaskContainers, TaskDetails, TaskPool
from onefuzztypes.primitives import Container, PoolName
from __app__.onefuzzlib.autoscale import autoscale_pool, get_vm_count
from __app__.onefuzzlib.pools import Pool
from __app__.onefuzzlib.tasks.main import Task
class TestAutoscale(unittest.TestCase):
@patch("__app__.onefuzzlib.tasks.main.Task.get_tasks_by_pool_name")
def test_autoscale_pool(self, mock_get_tasks_by_pool_name: MagicMock) -> None:
pool = Pool(
name=PoolName("test-pool"),
pool_id=UUID("6b049d51-23e9-4f5c-a5af-ff1f73d0d9e9"),
os=OS.linux,
managed=False,
arch=Architecture.x86_64,
)
autoscale_pool(pool=pool)
mock_get_tasks_by_pool_name.assert_not_called()
@patch("__app__.onefuzzlib.tasks.main.Task.get_pool")
def test_get_vm_count(self, mock_get_pool: MagicMock) -> None:
self.assertEqual(get_vm_count([]), 0)
task_config = TaskConfig(
job_id=UUID("6b049d51-23e9-4f5c-a5af-ff1f73d0d9e9"),
containers=[
TaskContainers(
type=ContainerType.inputs, name=Container("test-container")
)
],
tags={},
task=TaskDetails(
type=TaskType.libfuzzer_fuzz,
duration=12,
target_exe="fuzz.exe",
target_env={},
target_options=[],
),
pool=TaskPool(count=2, pool_name=PoolName("test-pool")),
)
task = Task(
job_id=UUID("6b049d51-23e9-4f5c-a5af-ff1f73d0d9e9"),
os=OS.linux,
config=task_config,
)
mock_get_pool.return_value = Pool(
name=PoolName("test-pool"),
pool_id=UUID("6b049d51-23e9-4f5c-a5af-ff1f73d0d9e9"),
os=OS.linux,
managed=False,
arch=Architecture.x86_64,
)
self.assertEqual(get_vm_count([task]), 2)