298:7a103296a019
Anton Shestakov <av6@dwimlabs.net>, Wed, 20 Sep 2017 11:25:26 +0800
viewer: use two columns for info lists on check page for small screens too Since lists themselves switch to one column on small screens, there's enough space for both of them side by side.

previous change 243:0a5072b593dc

tests/test_models.py

Permissions: -rw-r--r--

Other formats: Feeds:
from datetime import datetime, timedelta
from candolint import adapters
from candolint.models import database, Project, Change, Check
def setup_module():
with database.transaction():
Project.create(
url='https://example.com/alice/test-models',
domain='example.com',
user='alice',
name='test-models')
def test_duration():
now = datetime.now()
check = Check(started=now)
check.finished = now + timedelta(seconds=10)
assert check.get_duration() == '10 sec'
check.finished = now + timedelta(minutes=5)
assert check.get_duration() == '5 min'
check.finished = now + timedelta(hours=2)
assert check.get_duration() == '120 min'
def test_manual_upsert():
data = {
'rev': 42,
'node': '92cfceb39d57d914ed8b14d0e37643de0797ae56',
'branch': 'default',
'date': datetime.now(),
'author': 'alice',
'message': 'component: do a thing',
'project': Project.get(name='test-models')
}
with database.transaction():
change, created = Change.manual_upsert(**data)
assert change is not None
assert created
change = Change.get(id=change.id)
assert change.rev == 42
old_id = change.id
data['rev'] = None
with database.transaction():
change, created = Change.manual_upsert(**data)
assert change is not None
assert not created
change = Change.get(id=change.id)
assert change.rev is None
assert change.id == old_id
def test_get_adapter():
project = Project(domain='bitbucket.org', name='obviously-from-bitbucket')
assert isinstance(project.get_adapter(), adapters.BitbucketAdapter)
project = Project(domain='github.com', name='obviously-from-github')
assert isinstance(project.get_adapter(), adapters.GithubAdapter)
project = Project(domain='example.com', name='fallback')
assert isinstance(project.get_adapter(), adapters.HostingAdapter)