blob: 2edb1d612974a9892b701ea319f815a276e98889 (
plain)
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
from qface.idl.domain import System
from qface.generator import FileSystem
import logging
import logging.config
from pathlib import Path
# logging.config.fileConfig('logging.ini')
logging.basicConfig()
log = logging.getLogger(__name__)
examples = Path('./examples')
log.debug('examples folder: {0}'.format(examples.absolute()))
def loadTuner():
path = examples / 'entertainment.tuner.Tuner.qface'
return FileSystem.parse_document(path)
def test_parse():
log.debug('test parse')
names = FileSystem.find_files(examples, '*.qface')
# import pdb; pdb.set_trace()
system = System()
for name in names:
log.debug('name: {0}'.format(name))
FileSystem.parse_document(name, system)
def test_package():
system = loadTuner()
assert len(system.packages) == 1
package = system.lookup_package('entertainment.tuner')
assert package in system.packages
def test_service():
system = loadTuner()
package = system.lookup_package('entertainment.tuner')
service = system.lookup_service('entertainment.tuner.Tuner')
assert service in package.services
assert service.comment == '/*! Service Tuner */'
def test_attribute():
system = loadTuner()
service = system.lookup_service('entertainment.tuner.Tuner')
package = system.lookup_package('entertainment.tuner')
attr = service.attributeMap['currentStation']
assert attr.type.name == 'Station'
assert attr.package == package
assert attr.type.qualifiedName == 'entertainment.tuner.Station'
assert attr.is_readonly
assert attr.comment == '/*! attribute currentStation */'
def test_struct():
system = loadTuner()
package = system.lookup_package('entertainment.tuner')
symbol = system.lookup_struct('entertainment.tuner.Station')
assert symbol.name == 'Station'
assert symbol.package == package
assert symbol.qualifiedName == 'entertainment.tuner.Station'
assert symbol.comment == '/*! struct Station */'
def test_enum():
system = loadTuner()
definition = system.lookup_definition('entertainment.tuner.Waveband')
package = system.lookup_package('entertainment.tuner')
symbol = system.lookup_enum('entertainment.tuner.Waveband')
assert definition == symbol
assert symbol.name == 'Waveband'
assert symbol.package == package
assert symbol.qualifiedName == 'entertainment.tuner.Waveband'
assert symbol.comment == '/*! enum Waveband */'
assert symbol.is_enum
def test_flag():
system = loadTuner()
symbol = system.lookup_enum('entertainment.tuner.Features')
assert symbol.is_flag
def test_list():
system = loadTuner()
service = system.lookup_service('entertainment.tuner.Tuner')
attr = service.attributeMap['primitiveList']
assert attr.type.name == 'list'
assert attr.type.is_list is True
assert attr.type.nested.is_primitive
assert attr.type.nested.name == 'int'
attr = service.attributeMap['complexList']
assert attr.type.name == 'list'
assert attr.type.is_list is True
assert attr.type.nested.is_complex
assert attr.type.nested.name == 'Station'
def test_model():
system = loadTuner()
service = system.lookup_service('entertainment.tuner.Tuner')
attr = service.attributeMap['primitiveModel']
assert attr.type.name == 'model'
assert attr.type.is_model is True
assert attr.type.nested.is_primitive
assert attr.type.nested.name == 'int'
attr = service.attributeMap['complexModel']
assert attr.type.name == 'model'
assert attr.type.is_model is True
assert attr.type.nested.is_complex
assert attr.type.nested.name == 'Station'
|