Add a basic build logs archiver test
This commit is contained in:
parent
22f088d90a
commit
b7a2a4390b
1 changed files with 33 additions and 0 deletions
33
workers/buildlogsarchiver/test/test_buildlogsarchiver.py
Normal file
33
workers/buildlogsarchiver/test/test_buildlogsarchiver.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
from mock import patch, Mock
|
||||
|
||||
from app import storage
|
||||
from data import model
|
||||
from workers.buildlogsarchiver.buildlogsarchiver import ArchiveBuildLogsWorker
|
||||
|
||||
from test.fixtures import *
|
||||
|
||||
def test_logarchiving(app):
|
||||
worker = ArchiveBuildLogsWorker()
|
||||
logs_mock = Mock()
|
||||
logs_mock.get_log_entries = Mock(return_value=(1, [{'some': 'entry'}]))
|
||||
|
||||
# Add a build that is ready for archiving.
|
||||
repo = model.repository.get_repository('devtable', 'simple')
|
||||
access_token = model.token.create_access_token(repo, 'admin')
|
||||
build = model.build.create_repository_build(repo, access_token, {}, None, 'foo')
|
||||
build.phase = 'error'
|
||||
build.save()
|
||||
|
||||
with patch('workers.buildlogsarchiver.buildlogsarchiver.build_logs', logs_mock):
|
||||
worker._archive_redis_buildlogs()
|
||||
|
||||
# Ensure the get method was called.
|
||||
logs_mock.get_log_entries.assert_called_once()
|
||||
logs_mock.expire_status.assert_called_once()
|
||||
logs_mock.delete_log_entries.assert_called_once()
|
||||
|
||||
# Ensure the build was marked as archived.
|
||||
assert model.build.get_repository_build(build.uuid).logs_archived
|
||||
|
||||
# Ensure a file was written to storage.
|
||||
assert storage.exists(['local_us'], 'logarchive/%s' % build.uuid)
|
Reference in a new issue