class RobotControllerRecordingDelegate(Delegate): def __init__(self): Delegate.__init__(self) self.allowedEventTypes = ["NewPosition", "EndRecordSession", "NewRecordSession", "StartRecord", "StopRecord"] self.sequence = PositionSequence() self.manager = SequenceFileManager() self.recording = False def notify(self, event): if not self.doesHandleEvent(event): return if( event.type == "NewRecordSession" ): print "RobotControllerRecordingDelegate: new session named: " + event.data self.sessionName = event.data elif( event.type == "EndRecordSession" ): #saving data print "RobotControllerRecordingDelegate: saving file" + self.sessionName self.manager.save( self.sequence, self.sessionName ) self.sessionName = 0 elif( event.type == "StartRecord"): print "RobotControllerRecordingDelegate: start recording" self.recording = True elif( event.type == "StopRecord" ): self.recording = False elif( event.type == "NewPosition" and self.recording ): print "RobotControllerRecordingDelegate: add position" self.sequence.appendPosition(event.data)
class TestSequenceFileManager: def setup_method(self, method): self.manager = SequenceFileManager() self.sequence = PositionSequence([]) def test_load_simpleJointFile(self): self.manager.load(self.sequence, "data/simple.txt") assert self.sequence.amount() == 3 def test_save_simpleJointFile_fileCreation(self): preparedSequence = self.preparePositionSequence() targetFilepath = "data/temp.txt" self.manager.save(preparedSequence, targetFilepath) assert os.path.exists(targetFilepath) os.remove(targetFilepath) def test_save_simpleJointFile_simple(self): preparedSequence = self.preparePositionSequence() targetFilepath = "data/temp.txt" self.manager.save(preparedSequence, targetFilepath) #load and test loadedSequence = PositionSequence([]) self.manager.load(loadedSequence, targetFilepath) assert loadedSequence.amount() == 100, "Sequence should consist of 100 positions" os.remove(targetFilepath) def test_load_fileNotFound(self): try: self.manager.load(self.sequence, "dummyFileDoesnExists.txt") except: assert py.test.raises(Exception, "Filename not found") return assert False, "Exception not thrown" #helpers def preparePositionSequence(self): sequence = PositionSequence([]) for i in range(0,100): sequence.appendPosition(JointPosition([0*i,1*i,2*i,3*i,4*i,5*i])) return sequence def teardown_method(self, method): self.manager = 0 self.sequence = 0
def setup_method(self, method): self.manager = SequenceFileManager() self.sequence = PositionSequence([])
def __init__(self): Delegate.__init__(self) self.allowedEventTypes = ["NewPosition", "EndRecordSession", "NewRecordSession", "StartRecord", "StopRecord"] self.sequence = PositionSequence() self.manager = SequenceFileManager() self.recording = False