Skip to content

Commit

Permalink
Trying to get tests to work
Browse files Browse the repository at this point in the history
  • Loading branch information
Griffin-Sullivan committed Aug 1, 2023
1 parent 6f1bdee commit 6e50090
Show file tree
Hide file tree
Showing 10 changed files with 106 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,5 +95,5 @@ ENV/
.pytest_cache/

# project
*settings.yaml
/broker_settings.yaml
inventory.yaml
17 changes: 0 additions & 17 deletions tests/conftest.py

This file was deleted.

54 changes: 54 additions & 0 deletions tests/data/broker_settings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Broker settings
# different log levels for file and stdout
logging:
console_level: info
file_level: debug
# Host Settings
# These can be left alone if you're not using Broker as a library
host_username: root
host_password: "<password>"
host_ssh_port: 22
host_ssh_key_filename: "</path/to/the/ssh-key>"
# Provider settings
TestProvider:
instances:
- test1:
foo: "bar"
default: True
- test2:
foo: "baz"
override_envars: True
- bad:
nothing: False
config_value: "something"
AnsibleTower:
base_url: "https://<ansible tower host>/"
# Username is required for both token and password-based authentication
username: "<username>"
# token is the preferred authentication method
token: "<AT personal access token>"
# password: "<plain text password>"
inventory: "inventory name"
release_workflow: "remove-vm"
extend_workflow: "extend-vm"
new_expire_time: "+172800"
workflow_timeout: 3600
results_limit: 50
Container:
host_username: "<username>"
host_password: "<plain text password>"
host_port: None
default: True
runtime: 'docker'
# name used to prefix container names, used to distinguish yourself
# if not set, then your local username will be used
# name_prefix: test
results_limit: 50
auto_map_ports: False
# You can set a nickname as a shortcut for arguments
nicks:
test_nick:
test_action: "fake"
arg1: "abc"
arg2: 123
arg3: True
18 changes: 18 additions & 0 deletions tests/unit/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sys
import shutil

def pytest_configure(config):
from broker.settings import settings_path, inventory_path
inv_backup_path = None
if inventory_path.exists():
inv_backup_path = inventory_path.rename(f"{inventory_path.absolute()}.bak")
settings_backup_path = settings_path.rename(f"{settings_path.absolute()}.bak")
shutil.copyfile('tests/data/broker_settings.yaml', f'{settings_path.parent}/broker_settings.yaml')
inventory_path.touch()
del sys.modules['broker.settings']
yield
inventory_path.unlink()
settings_path.unlink()
if inv_backup_path:
inv_backup_path.rename(inventory_path)
settings_backup_path.rename(settings_path)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 17 additions & 0 deletions tests/test_helpers.py → tests/unit/test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,23 @@
import pytest
from broker import helpers
from broker import exceptions
import os
import pytest


@pytest.fixture
def set_envars(request):
"""Set and unset one or more environment variables"""
if isinstance(request.param, list):
for pair in request.param:
os.environ[pair[0]] = pair[1]
yield
for pair in request.param:
del os.environ[pair[0]]
else:
os.environ[request.param[0]] = request.param[1]
yield
del os.environ[request.param[0]]

BROKER_ARGS_DATA = {
"myarg": [
Expand Down
16 changes: 16 additions & 0 deletions tests/test_settings.py → tests/unit/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,23 @@
from dynaconf import ValidationError
from broker.exceptions import ConfigurationError
from broker.providers.test_provider import TestProvider
import os
import pytest


@pytest.fixture
def set_envars(request):
"""Set and unset one or more environment variables"""
if isinstance(request.param, list):
for pair in request.param:
os.environ[pair[0]] = pair[1]
yield
for pair in request.param:
del os.environ[pair[0]]
else:
os.environ[request.param[0]] = request.param[1]
yield
del os.environ[request.param[0]]

def test_default_settings():
test_provider = TestProvider()
Expand Down

0 comments on commit 6e50090

Please sign in to comment.