-
Notifications
You must be signed in to change notification settings - Fork 40
/
test_db.py
73 lines (54 loc) · 1.85 KB
/
test_db.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- coding: utf-8 -*-
'''
Tests for database
'''
import unittest
import tempfile
import os
from pyca import db, config
class TestPycaDb(unittest.TestCase):
dbfile = None
def setUp(self):
cfg = './etc/pyca.conf'
config.update_configuration(cfg)
self.fd, self.dbfile = tempfile.mkstemp()
config.config()['agent']['database'] = 'sqlite:///' + self.dbfile
def tearDown(self):
os.close(self.fd)
os.remove(self.dbfile)
def test_get_session(self):
# Check a random session attribute to ensure we have a valid session
self.assertIn('autoflush', db.get_session().__dict__.keys())
def test_event_data(self):
series = u'äöüßÄÖÜ'
title = u'„xyz“'
e = db.BaseEvent()
e.set_data({'series': series, 'title': title})
# Check data serialization
data = e.get_data()
self.assertEqual(data['title'], title)
self.assertEqual(data['series'], series)
def test_status(self):
for i, value in enumerate(db.Status.values()):
self.assertEqual(value, i + 1)
self.assertEqual(db.Status.str(db.Status.UPCOMING), 'upcoming')
def test_event(self):
e = db.BaseEvent()
e.uid = 'asd'
e.start = 123
e.end = 234
e.status = db.Status.UPCOMING
e.set_data({})
self.assertEqual(str(e), '<Event(start=123, uid="asd")>')
e = db.RecordedEvent(e)
self.assertEqual(e.name(), 'recording-123-asd')
self.assertEqual(e.status_str(), 'upcoming')
self.assertEqual(e.serialize()['id'], 'asd')
self.assertEqual(e.get_tracks(), [])
def test_servicestate(self):
s = db.ServiceStates()
s.type = 0
s.status = 0
s = db.ServiceStates(s)
self.assertEqual(s.type, 0)
self.assertEqual(s.status, 0)