6 from ui
import RoboAide
8 from PySide2.QtWidgets
import QApplication
9 from PySide2.QtWidgets
import QComboBox
14 app = QApplication(sys.argv)
19 self.testWindow.serialConnected =
True 21 self.
testMove = RoboAide.Move(self.testWindow.dictMot)
24 for motor
in self.testWindow.dictMot:
25 self.assertEqual(self.testMove.getMotorPosition(motor), -1)
28 for motor
in self.testWindow.dictMot:
29 self.testMove.setMotorPosition(motor,10)
31 for motor
in self.testWindow.dictMot:
32 self.assertEqual(self.testMove.getMotorPosition(motor), 10)
35 self.assertEqual(self.testMove.getMotorPosition(
"moteur 1"),
"There's no motor named that way")
40 self.testWindow.serialConnected =
True 46 self.assertEqual(self.testMotor.getGoalPosition(), 500)
49 self.assertTrue(self.testMotor.isEnabled(),
"Motor is not enabled")
52 self.testMotor.setStatus(
False)
53 self.assertFalse(self.testMotor.isEnabled(),
"Motor is enabled, set status doesn't work")
56 self.assertEqual(self.testMotor.getName(),
"testMotor")
59 self.testMotor.setName(
"Nom")
60 self.assertEqual(self.testMotor.getName(),
"Nom")
65 self.testWindow.serialConnected =
True 67 self.
testSequence = RoboAide.Sequence(self.testWindow.dictMot,
"testSequence")
70 self.assertEqual(self.testSequence.getName(),
"testSequence")
73 self.testSequence.setName(
"pogo")
74 self.assertEqual(self.testSequence.getName(),
"pogo")
77 self.assertEqual(self.testSequence.getNumberofMoves(), 0)
80 self.testSequence.addMove(RoboAide.Move(self.testWindow.dictMot))
81 self.assertEqual(self.testSequence.getNumberofMoves(), 1)
84 self.testSequence.addMove(RoboAide.Move(self.testWindow.dictMot))
85 self.testSequence.addMove(RoboAide.Move(self.testWindow.dictMot))
86 self.assertEqual(self.testSequence.getNumberofMoves(), 2)
89 move = RoboAide.Move(self.testWindow.dictMot)
90 self.testSequence.addMove(move)
91 self.testSequence.deleteMove(move)
92 self.assertEqual(self.testSequence.getNumberofMoves(), 0)
97 self.testWindow.serialConnected =
True 100 self.testWindow.listOfSequencesHandler,
101 RoboAide.Sequence(self.testWindow.dictMot))
105 for counterMotors
in range(len(self.testWindow.dictMot)):
106 self.testSequenceWindow.listOfSliders[counterMotors].setValue(40)
108 self.testSequenceWindow.addMovetoSequence()
110 self.assertEqual(self.testSequenceWindow.getSequence().getNumberofMoves(),1)
114 for motor
in self.testWindow.dictMot:
115 self.testWindow.dictMot[motor].setGoalPosition(30)
117 self.testSequenceWindow.updateSlidersPositions()
119 for counterMotors
in range(len(self.testWindow.dictMot)):
120 self.assertEqual(self.testSequenceWindow.listOfSliders[counterMotors].value(),30)
123 for counterMotors
in range(len(self.testWindow.dictMot)):
124 self.testSequenceWindow.listOfSliders[counterMotors].setValue(40)
126 self.testSequenceWindow.addMovetoSequence()
128 self.assertEqual(self.testSequenceWindow.getSequence().getNumberofMoves(),1)
130 self.testSequenceWindow.deleteMove(self.testSequenceWindow.getListofMoveLabels().item(0))
132 self.assertEqual(self.testSequenceWindow.getSequence().getNumberofMoves(), 0)
135 self.testSequenceWindow.setName(
"bob")
136 self.assertEqual(self.testSequenceWindow.getSequence().getName(),
"bob")
139 row = self.testWindow.ui.listOfSequences.count()
141 for counterMotors
in range(len(self.testWindow.dictMot)):
142 self.testSequenceWindow.listOfSliders[counterMotors].setValue(40)
143 self.testSequenceWindow.nameEntry.setText(
"bob")
144 self.testSequenceWindow.addMovetoSequence()
146 self.testSequenceWindow.addSequenceToList()
148 self.assertEqual(self.testWindow.ui.listOfSequences.count(), row+1)
150 foundSequenceInSaveFile =
False 152 with open(
'SaveSequence.json')
as save:
153 savedListOfSequences = json.load(save)
154 for sequence
in savedListOfSequences:
155 if self.testSequenceWindow.getSequence().getName()
in sequence:
156 foundSequenceInSaveFile =
True 158 self.assertTrue(foundSequenceInSaveFile)
159 except FileNotFoundError:
160 print(
"No file saved")
162 self.testWindow.ui.listOfSequences.setCurrentItem(self.testSequenceWindow.getSequence())
164 self.testWindow.listOfSequencesHandler.removeSelectedItem()
166 self.assertEqual(self.testWindow.ui.listOfSequences.count(), row)
171 self.testWindow.serialConnected =
True 174 self.testWindow.dictMot)
175 self.
testSequence = RoboAide.Sequence(self.testWindow.dictMot,
"testSequence")
176 self.
testMove = RoboAide.Move(self.testWindow.dictMot)
177 for motor
in self.testWindow.dictMot:
178 self.testMove.setMotorPosition(motor,10)
179 self.testSequence.addMove(self.
testMove)
182 row = self.testWindow.ui.listOfSequences.count()
183 self.testListofSequencesHandler.addItem(self.
testSequence)
184 self.assertEqual(self.testWindow.ui.listOfSequences.count(), row + 1)
188 row = self.testWindow.ui.listOfSequences.count()
189 self.testListofSequencesHandler.addItem(self.
testSequence)
190 self.testWindow.ui.listOfSequences.setCurrentItem(self.testWindow.ui.listOfSequences.item(row))
191 self.assertTrue(self.testWindow.ui.listOfSequences.item(row).isSelected())
192 self.testListofSequencesHandler.playSequence()
194 self.testWindow.shouldStop =
True 195 for motor
in self.testWindow.dictMot:
196 self.assertEqual(self.testWindow.dictMot[motor].getGoalPosition(),10)
204 self.testWindow.serialConnected =
True 211 valueList = [0, 0, 0, 0, 0, 0]
212 for motor
in self.testWindow.dictMot:
216 self.testWindow.dictMot[motor].setGoalPosition(value)
217 expectedResult = self.testWindow.s.pack(b
'a', *valueList,
False,
False,
False,
False, b
'\0')
218 self.assertEqual(self.testWindow.msgDeque[-1], expectedResult)
222 self.testWindow.sendMessage(
's')
223 expectedResult = self.testWindow.s.pack(b
's', *valueList,
False,
False,
False,
False, b
'\0')
224 self.assertEqual(self.testWindow.msgDeque[-1], expectedResult)
227 self.testWindow.sendMessage(
'c')
228 expectedResult = self.testWindow.s.pack(b
'c', *valueList,
False,
False,
False,
False, b
'\0')
229 self.assertEqual(self.testWindow.msgDeque[-1], expectedResult)
232 dummyPortsList = [
"COM1",
"COM2"]
233 self.testWindow.ports_list = dummyPortsList
234 self.testWindow.ui.portselection = QComboBox()
235 self.testWindow.populatePortsList()
236 AllItems = [self.testWindow.ui.portselection.itemText(i)
for i
in range(self.testWindow.ui.portselection.count())]
237 self.assertEqual(dummyPortsList, AllItems)
243 self.testWindow.serialConnected =
True 245 self.testWindow.msgReception.start()
249 Test for reading incoming message and updating the motors' current posisition 252 message = self.testWindow.s.pack(b
'a', *self.
motorValues,
False,
False,
False,
False, b
'\0')
253 self.testWindow.comm.loadMessage(message)
256 for motor
in self.testWindow.dictMot:
257 self.assertEqual(self.testWindow.dictMot[motor].getCurrentPosition(), self.
motorValues[i])
261 self.testWindow.msgReception.stop()
262 while self.testWindow.msgReception.isRunning():
268 self.testWindow.serialConnected =
True 270 self.testWindow.msgTransmission.start()
274 motorValues = [100, 200, 300, 400, 500, 600]
275 message = self.testWindow.s.pack(b
'a', *motorValues,
False,
False,
False,
False, b
'\0')
276 self.testWindow.msgDeque.append(message)
278 self.assertEqual(self.testWindow.comm.lastSentMessage, message)
281 self.testWindow.msgTransmission.stop()
282 while self.testWindow.msgTransmission.isRunning():
292 self.testDrawer.open()
293 self.assertEqual(self.testDrawer.state,
True)
296 self.testDrawer.close()
297 self.assertEqual(self.testDrawer.state,
False)
300 self.testDrawer.setState(
True)
301 self.assertEqual(self.testDrawer.state,
True)
302 self.testDrawer.setState(
False)
303 self.assertEqual(self.testDrawer.state,
False)
306 self.testDrawer.setState(
True)
307 self.assertEqual(self.testDrawer.getState(),
True)
308 self.testDrawer.setState(
False)
309 self.assertEqual(self.testDrawer.getState(),
False)
321 timeout = time.time() + 0.1
322 while len(self.
message) != messageSize
and time.time() < timeout:
335 if __name__ ==
'__main__':
def test_set_status(self)
def test_getNumberOfMoves(self)
def test_wrong_motor_name(self)
def test_sendMessage(self)
def loadMessage(self, message)
def test_deleteMove(self)
def test_set_position(self)
def test_deleteMove(self)
def read(self, messageSize)
def test_get_position(self)
def test_addMovetoSequence(self)
def __init__(self, message="")
def test_updateSlidersPositions(self)
def test_is_enabled(self)
def test_playSequence(self)
testListofSequencesHandler
def test_get_position(self)
def test_populatePortsList(self)
def test_addSequenceToList(self)