start implementing property layering

This commit is contained in:
Jakob Ketterl
2020-03-22 21:51:49 +01:00
parent b3a5a36d9c
commit 885d02ceca
2 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,43 @@
from unittest import TestCase
from unittest.mock import Mock
from owrx.property import PropertyManager, PropertyLayers
class TestPropertyMock(TestCase):
def testLayer(self):
om = PropertyLayers()
pm = PropertyManager()
pm["testkey"] = "testvalue"
om.addLayer(1, pm)
self.assertEqual(om["testkey"], "testvalue")
def testHighPriority(self):
om = PropertyLayers()
low_pm = PropertyManager()
high_pm = PropertyManager()
low_pm["testkey"] = "low value"
high_pm["testkey"] = "high value"
om.addLayer(1, low_pm)
om.addLayer(0, high_pm)
self.assertEqual(om["testkey"], "high value")
def testPriorityFallback(self):
om = PropertyLayers()
low_pm = PropertyManager()
high_pm = PropertyManager()
low_pm["testkey"] = "low value"
om.addLayer(1, low_pm)
om.addLayer(0, high_pm)
self.assertEqual(om["testkey"], "low value")
def testLayerRemoval(self):
om = PropertyLayers()
low_pm = PropertyManager()
high_pm = PropertyManager()
low_pm["testkey"] = "low value"
high_pm["testkey"] = "high value"
om.addLayer(1, low_pm)
om.addLayer(0, high_pm)
self.assertEqual(om["testkey"], "high value")
om.removeLayer(high_pm)
self.assertEqual(om["testkey"], "low value")