docker.images/ansible.awx/awx-17.1.0/awx/main/tests/unit/models/test_events.py

52 lines
1.6 KiB
Python

from datetime import datetime
from django.utils.timezone import utc
import pytest
from awx.main.models import (JobEvent, ProjectUpdateEvent, AdHocCommandEvent,
InventoryUpdateEvent, SystemJobEvent)
@pytest.mark.parametrize('job_identifier, cls', [
['job_id', JobEvent],
['project_update_id', ProjectUpdateEvent],
['ad_hoc_command_id', AdHocCommandEvent],
['inventory_update_id', InventoryUpdateEvent],
['system_job_id', SystemJobEvent],
])
@pytest.mark.parametrize('created', [
datetime(2018, 1, 1).isoformat(), datetime(2018, 1, 1)
])
def test_event_parse_created(job_identifier, cls, created):
event = cls.create_from_data(**{
job_identifier: 123,
'created': created
})
assert event.created == datetime(2018, 1, 1).replace(tzinfo=utc)
@pytest.mark.parametrize('job_identifier, cls', [
['job_id', JobEvent],
['project_update_id', ProjectUpdateEvent],
['ad_hoc_command_id', AdHocCommandEvent],
['inventory_update_id', InventoryUpdateEvent],
['system_job_id', SystemJobEvent],
])
def test_playbook_event_strip_invalid_keys(job_identifier, cls):
event = cls.create_from_data(**{
job_identifier: 123,
'extra_key': 'extra_value'
})
assert getattr(event, job_identifier) == 123
assert not hasattr(event, 'extra_key')
@pytest.mark.parametrize('field', [
'play', 'role', 'task', 'playbook'
])
def test_really_long_event_fields(field):
event = JobEvent.create_from_data(**{
'job_id': 123,
'event_data': {field: 'X' * 4096}
})
assert event.event_data[field] == 'X' * 1023 + ''