Skip to content

Commit

Permalink
import models explicitly into tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Digant C Kasundra committed May 18, 2015
1 parent e8c2a93 commit 6bcd6a5
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 35 deletions.
70 changes: 35 additions & 35 deletions tests/model_tests/test_achievements.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@
from sqlalchemy.exc import IntegrityError

from hermes import exc
from hermes import models
from hermes.models import Event, EventType, Fate, Host, Achievement

from .fixtures import db_engine, session, sample_data1


def test_lifecycle(sample_data1):
"""Test the automatic creation and closing of achievements based on Events and Fates"""
achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 0

fate = sample_data1.query(models.Fate).first()
host = sample_data1.query(models.Host).first()
fate = sample_data1.query(Fate).first()
host = sample_data1.query(Host).first()
assert len(host.achievements) == 0

models.Event.create(sample_data1, host, "system", fate.creation_event_type)
Event.create(sample_data1, host, "system", fate.creation_event_type)

event = (
sample_data1.query(models.Event)
.order_by(desc(models.Event.id)).first()
sample_data1.query(Event)
.order_by(desc(Event.id)).first()
)

assert event.host == host
assert event.event_type == fate.creation_event_type

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 1
assert achievements[0].completion_time is None
assert achievements[0].completion_event is None
Expand All @@ -37,19 +37,19 @@ def test_lifecycle(sample_data1):
assert len(event.created_achievements) == 1
assert len(event.completed_achievements) == 0

models.Event.create(
Event.create(
sample_data1, host, "system", fate.completion_event_type
)

event = (
sample_data1.query(models.Event)
.order_by(desc(models.Event.id)).first()
sample_data1.query(Event)
.order_by(desc(Event.id)).first()
)

assert event.host == host
assert event.event_type == fate.completion_event_type

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 1
assert achievements[0].completion_time is not None
assert achievements[0].completion_event == event
Expand All @@ -62,81 +62,81 @@ def test_lifecycle(sample_data1):
def test_lifecycle_complex(sample_data1):
"""Test the automatic creation and closing of achievements based on Events and Fates.
This version is a bit more complex in that we make sure unaffiliated achievements are left untouched."""
achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 0

fates = sample_data1.query(models.Fate).all()
fates = sample_data1.query(Fate).all()
fate1 = fates[0]
fate2 = fates[1]

hosts = sample_data1.query(models.Host).all()
hosts = sample_data1.query(Host).all()
host1 = hosts[0]
host2 = hosts[1]

models.Event.create(sample_data1, host1, "system", fate1.creation_event_type)
models.Event.create(sample_data1, host2, "system", fate2.creation_event_type)
Event.create(sample_data1, host1, "system", fate1.creation_event_type)
Event.create(sample_data1, host2, "system", fate2.creation_event_type)

event = (
sample_data1.query(models.Event)
.order_by(desc(models.Event.id)).first()
sample_data1.query(Event)
.order_by(desc(Event.id)).first()
)

assert event.host == host2
assert event.event_type == fate2.creation_event_type

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 2
assert achievements[0].completion_time is None
assert achievements[0].completion_event is None
assert achievements[1].completion_time is None
assert achievements[1].completion_event is None

models.Event.create(
Event.create(
sample_data1, host1, "system", fate1.completion_event_type
)

event = (
sample_data1.query(models.Event)
.order_by(desc(models.Event.id)).first()
sample_data1.query(Event)
.order_by(desc(Event.id)).first()
)

assert event.host == host1
assert event.event_type == fate1.completion_event_type

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 2
assert achievements[0].completion_time is not None
assert achievements[0].completion_event is not None
assert achievements[1].completion_time is None
assert achievements[1].completion_event is None

achievements = models.Achievement.get_open_achievements(sample_data1)
achievements = Achievement.get_open_achievements(sample_data1)
assert len(achievements) == 1

achievements = models.Achievement.get_open_unacknowledged(sample_data1)
achievements = Achievement.get_open_unacknowledged(sample_data1)
assert len(achievements) == 1


def test_acknowledge(sample_data1):
"""Test to ensure that acknowledgement correctly flags Achievements as such"""

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 0

fate = sample_data1.query(models.Fate).get(1)
host = sample_data1.query(models.Host).get(1)
fate = sample_data1.query(Fate).get(1)
host = sample_data1.query(Host).get(1)

models.Event.create(sample_data1, host, "system", fate.creation_event_type)
Event.create(sample_data1, host, "system", fate.creation_event_type)

event = (
sample_data1.query(models.Event)
.order_by(desc(models.Event.id)).first()
sample_data1.query(Event)
.order_by(desc(Event.id)).first()
)

assert event.host == host
assert event.event_type == fate.creation_event_type

achievements = models.Achievement.get_open_unacknowledged(sample_data1)
achievements = Achievement.get_open_unacknowledged(sample_data1)
assert len(achievements) == 1
assert achievements[0].completion_time is None
assert achievements[0].completion_event is None
Expand All @@ -146,15 +146,15 @@ def test_acknowledge(sample_data1):

achievements[0].acknowledge("testman")

achievements = sample_data1.query(models.Achievement).all()
achievements = sample_data1.query(Achievement).all()
assert len(achievements) == 1
assert achievements[0].completion_time is None
assert achievements[0].completion_event is None
assert achievements[0].ack_time is not None
assert achievements[0].ack_user == "testman"
assert achievements[0].creation_event == event

achievements = models.Achievement.get_open_unacknowledged(sample_data1)
achievements = Achievement.get_open_unacknowledged(sample_data1)
assert len(achievements) == 0


Expand Down
6 changes: 6 additions & 0 deletions tests/model_tests/test_quests.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,9 @@ def test_complex_chaining2(sample_data2):
# are created for both events
found_hosts = sample_data2.query(Host).filter(Host.hostname.in_(hosts)).all()
assert len(found_hosts) == 2
assert len(found_hosts[0].events) == 2
assert len(found_hosts[1].events) == 2

event1 = Event.create(
sample_data2, found_hosts[0], "system",
EventType.get_event_type(sample_data2, "system-reboot", "completed")
Expand All @@ -305,6 +308,9 @@ def test_complex_chaining2(sample_data2):
EventType.get_event_type(sample_data2, "system-reboot", "completed")
)

assert len(found_hosts[0].events) == 3
assert len(found_hosts[1].events) == 3

assert len(bravo_quest.achievements) == 4
assert len(bravo_quest.get_open_achievements()) == 2
assert len(charlie_quest.achievements) == 4
Expand Down

0 comments on commit 6bcd6a5

Please sign in to comment.