Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/tests/updater/test_writer.py
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | def test_run_ko(self): | ||||
] | ] | ||||
expected_length = len(ready_events) | expected_length = len(ready_events) | ||||
self.scheduler_updater_backend.cache_put(ready_events) | self.scheduler_updater_backend.cache_put(ready_events) | ||||
data = list(self.scheduler_updater_backend.cache_read()) | data = list(self.scheduler_updater_backend.cache_read()) | ||||
self.assertEqual(len(data), expected_length) | self.assertEqual(len(data), expected_length) | ||||
r = self.scheduler_backend.peek_ready_tasks( | r = self.scheduler_backend.peek_ready_tasks('load-git') | ||||
'origin-update-git') | |||||
# first read on an empty scheduling db results with nothing in it | # first read on an empty scheduling db results with nothing in it | ||||
self.assertEqual(len(r), 0) | self.assertEqual(len(r), 0) | ||||
# Read from cache to scheduler db | # Read from cache to scheduler db | ||||
self.writer.run() | self.writer.run() | ||||
r = self.scheduler_backend.peek_ready_tasks( | r = self.scheduler_backend.peek_ready_tasks('load-git') | ||||
'origin-update-git') | |||||
# other reads after writes are still empty since it's not supported | # other reads after writes are still empty since it's not supported | ||||
self.assertEqual(len(r), 0) | self.assertEqual(len(r), 0) | ||||
def test_run_ok(self): | def test_run_ok(self): | ||||
"""Only git origin are supported for now | """Only git origin are supported for now | ||||
""" | """ | ||||
ready_events = [ | ready_events = [ | ||||
SWHEvent( | SWHEvent( | ||||
self._make_simple_event(event_type, 'origin-%s' % i, 'git')) | self._make_simple_event(event_type, 'origin-%s' % i, 'git')) | ||||
for i, event_type in enumerate(LISTENED_EVENTS) | for i, event_type in enumerate(LISTENED_EVENTS) | ||||
] | ] | ||||
expected_length = len(ready_events) | expected_length = len(ready_events) | ||||
self.scheduler_updater_backend.cache_put(ready_events) | self.scheduler_updater_backend.cache_put(ready_events) | ||||
data = list(self.scheduler_updater_backend.cache_read()) | data = list(self.scheduler_updater_backend.cache_read()) | ||||
self.assertEqual(len(data), expected_length) | self.assertEqual(len(data), expected_length) | ||||
r = self.scheduler_backend.peek_ready_tasks( | r = self.scheduler_backend.peek_ready_tasks('load-git') | ||||
'origin-update-git') | |||||
# first read on an empty scheduling db results with nothing in it | # first read on an empty scheduling db results with nothing in it | ||||
self.assertEqual(len(r), 0) | self.assertEqual(len(r), 0) | ||||
# Read from cache to scheduler db | # Read from cache to scheduler db | ||||
self.writer.run() | self.writer.run() | ||||
# now, we should have scheduling task ready | # now, we should have scheduling task ready | ||||
r = self.scheduler_backend.peek_ready_tasks( | r = self.scheduler_backend.peek_ready_tasks('load-git') | ||||
'origin-update-git') | |||||
self.assertEqual(len(r), expected_length) | self.assertEqual(len(r), expected_length) | ||||
# Check the task has been scheduled | # Check the task has been scheduled | ||||
for t in r: | for t in r: | ||||
self.assertEqual(t['type'], 'origin-update-git') | self.assertEqual(t['type'], 'load-git') | ||||
self.assertEqual(t['priority'], 'normal') | self.assertEqual(t['priority'], 'normal') | ||||
self.assertEqual(t['policy'], 'oneshot') | self.assertEqual(t['policy'], 'oneshot') | ||||
self.assertEqual(t['status'], 'next_run_not_scheduled') | self.assertEqual(t['status'], 'next_run_not_scheduled') | ||||
# writer has nothing to do now | # writer has nothing to do now | ||||
self.writer.run() | self.writer.run() | ||||
# so no more data in cache | # so no more data in cache | ||||
data = list(self.scheduler_updater_backend.cache_read()) | data = list(self.scheduler_updater_backend.cache_read()) | ||||
self.assertEqual(len(data), 0) | self.assertEqual(len(data), 0) | ||||
# provided, no runner is ran, still the same amount of scheduling tasks | # provided, no runner is ran, still the same amount of scheduling tasks | ||||
r = self.scheduler_backend.peek_ready_tasks( | r = self.scheduler_backend.peek_ready_tasks('load-git') | ||||
'origin-update-git') | |||||
self.assertEqual(len(r), expected_length) | self.assertEqual(len(r), expected_length) |