mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
117 lines
3.5 KiB
Python
117 lines
3.5 KiB
Python
from unittest import TestCase
|
|
|
|
from bauh import stylesheet
|
|
|
|
|
|
class StylesheetTest(TestCase):
|
|
|
|
def test__process_var_of_vars__it_should_remove_vars_pointing_to_themselves(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'xxx': '@xxx'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(1, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
|
|
def test__process_var_of_vars__it_should_remove_vars_pointing_to_unknown_vars(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'xxx': '@def'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(1, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
|
|
def test__process_var_of_vars__it_should_not_replace_invalid_expressions(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'bcd': '@ xpto' # has a space between @ and 'xpto'
|
|
}
|
|
|
|
self.assertEqual(2, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
self.assertIn('bcd', var_map)
|
|
self.assertEqual('@ xpto', var_map['bcd'])
|
|
|
|
def test__process_var_of_vars__it_should_replace_value_at_first_iteration(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'xxx': '@abc'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(2, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
self.assertIn('xxx', var_map)
|
|
self.assertEqual('aaa', var_map['xxx'])
|
|
|
|
def test__process_var_of_vars__it_should_replace_value_at_second_iteration(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'def': '@abc',
|
|
'xxx': '@def'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(3, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
self.assertIn('def', var_map)
|
|
self.assertEqual('aaa', var_map['def'])
|
|
self.assertIn('xxx', var_map)
|
|
self.assertEqual('aaa', var_map['xxx'])
|
|
|
|
def test__process_var_of_vars__it_should_replace_value_at_third_iteration(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'def': '@abc',
|
|
'fgh': '@def',
|
|
'xxx': '@fgh'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(4, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
self.assertIn('def', var_map)
|
|
self.assertEqual('aaa', var_map['def'])
|
|
self.assertIn('fgh', var_map)
|
|
self.assertEqual('aaa', var_map['fgh'])
|
|
self.assertIn('xxx', var_map)
|
|
self.assertEqual('aaa', var_map['xxx'])
|
|
|
|
def test__process_var_of_vars__it_should_replace_multiple_vars(self):
|
|
var_map = {
|
|
'abc': 'aaa',
|
|
'def': '@abc',
|
|
'fgh': 'bbb',
|
|
'ijk': '@fgh',
|
|
'lmn': '@ijk'
|
|
}
|
|
|
|
stylesheet.process_var_of_vars(var_map)
|
|
|
|
self.assertEqual(5, len(var_map))
|
|
self.assertIn('abc', var_map)
|
|
self.assertEqual('aaa', var_map['abc'])
|
|
self.assertIn('def', var_map)
|
|
self.assertEqual('aaa', var_map['def'])
|
|
self.assertIn('fgh', var_map)
|
|
self.assertEqual('bbb', var_map['fgh'])
|
|
self.assertIn('ijk', var_map)
|
|
self.assertEqual('bbb', var_map['ijk'])
|
|
self.assertIn('lmn', var_map)
|
|
self.assertEqual('bbb', var_map['lmn'])
|