Fork PyRPL on GitHub

Source code for pyrpl.test.test_lockbox

import logging
logger = logging.getLogger(name=__name__)
import time
import numpy as np
from ..async_utils import sleep as async_sleep
from .test_base import TestPyrpl


[docs]class TestLockbox(TestPyrpl): source_config_file = "nosetests_source_lockbox.yml"
[docs] def setup(self): self.lockbox = self.pyrpl.lockbox
[docs] def test_create_stage(self): old_len = len(self.lockbox.sequence) widget = self.lockbox._create_widget() self.lockbox.sequence.append({'gain_factor': 2.0}) assert len(self.lockbox.sequence) == old_len + 1 # wait for stage creation signal to impact the GUI (async sleep to # let the EventLoop handle the notifiction from sequence...) async_sleep(0.1) assert len(widget.sequence_widget.stage_widgets) == old_len + 1 self.lockbox.sequence.append({'gain_factor':3.0}) assert self.lockbox.sequence[-1].gain_factor == 3.0 assert self.lockbox.sequence[-2].name == old_len assert self.lockbox.sequence[old_len].gain_factor == 2.0 self.lockbox.sequence.pop() assert len(self.lockbox.sequence) == old_len + 1 assert self.lockbox.sequence.pop()['gain_factor']==2.0
[docs] def test_real_lock(self): delay = 0.01 pid = self.pyrpl.rp.pid1 pid.i = 0.1 pid.p = 0.1 self.lockbox.classname = 'Linear' self.lockbox.sequence = [] self.lockbox.sequence.append({}) self.lockbox.outputs.output1.p = 0 self.lockbox.outputs.output1.i = -10.
[docs] def test_lock(self): pass
# make a config file for a lock including iir that locks onto itself # then load another state and lock a pid with existing integrator # test lock with islocked, test autorelock, test unit issues, # test change of lockbox with incompatible settings, test saving of # relevant lock parameters.