Fork PyRPL on GitHub

Source code for pyrpl.test.test_attribute

import logging
logger = logging.getLogger(name=__name__)
import numbers
from pyrpl.modules import Module
from pyrpl.attributes import BoolProperty, FilterProperty, SelectProperty, \
    FloatProperty
from pyrpl.module_attributes import  ModuleProperty
from pyrpl.test.test_base import TestPyrpl


[docs]class MyFilterProperty(FilterProperty):
[docs] def valid_frequencies(self, module): return [2**n for n in range(14)]
[docs]class FirstSubModule(Module): _setup_attributes = ['b1', 'b2'] b1 = BoolProperty() b2 = BoolProperty()
[docs]class SecondSubModule(Module): _setup_attributes = ['b1', 'b2'] b1 = BoolProperty() b2 = BoolProperty()
[docs]class DummyModule(Module): _gui_attributes = ['true_or_false'] # it is not necessary to mention the modules here #_setup_attributes = ['sub1', 'sub2'] true_or_false = BoolProperty() some_number = FloatProperty(min=-10, max=10, default=1.414) some_filter = MyFilterProperty() some_options = SelectProperty(options=["foo", "bar"]) sub1 = ModuleProperty(FirstSubModule) sub2 = ModuleProperty(SecondSubModule)
[docs]class TestAttributeClass(TestPyrpl): source_config_file = "nosetests_source_dummy_module"
[docs] def test_config_file(self): assert("DummyModule" in self.pyrpl.c.pyrpl.modules)
[docs] def test_dummy_module(self): assert(isinstance(self.pyrpl.dummymodule.true_or_false, bool)) assert(isinstance(self.pyrpl.dummymodule.some_number, float)) assert(isinstance(self.pyrpl.dummymodule.some_filter, numbers.Number)) #should this be a list ? assert(isinstance(self.pyrpl.dummymodule.some_options, str)) # used to be basestring # confirm config file content assert (self.pyrpl.c.dummymodule.some_number == 3.123), \ self.pyrpl.c.dummymodule.some_number # confirm that loading was done properly (instead of the above default) assert (self.pyrpl.c.dummymodule.some_number == 3.123), \ self.pyrpl.c.dummymodule.some_number
[docs] def test_submodule(self): self.sub1 = self.pyrpl.dummymodule.sub1 self.sub2 = self.pyrpl.dummymodule.sub2 assert(self.sub1.b1==True) # values defined in config file assert(self.sub1.b2==False) self.sub2.b1 = True self.sub2.b2 = False assert(self.sub2.b1==True) assert(self.sub2.b2==False) self.pyrpl.dummymodule.save_state("true_false_true_false") self.sub1.b1 = False self.sub1.b2 = True assert(self.sub1.b1==False) assert(self.sub1.b2==True) self.sub2.b1 = False self.sub2.b2 = True assert(self.sub2.b1==False) assert(self.sub2.b2==True) self.pyrpl.dummymodule.load_state("true_false_true_false") assert(self.sub1.b1==True) assert(self.sub1.b2==False) assert(self.sub2.b1==True) assert(self.sub2.b2==False)