Skip to content

Commit 5febabf

Browse files
ddemidovdwalton76
authored andcommitted
Update motor tests to work with BrickPi (#213)
* Reset contents of tests/motor to that of dlech/brickpi * Switch to python3
1 parent 1ca3e28 commit 5febabf

File tree

7 files changed

+819
-111
lines changed

7 files changed

+819
-111
lines changed

tests/motor/ev3dev_port_logger.py

100755100644
File mode changed.

tests/motor/motor_motion_unittest.py

100755100644
Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ def run_to_positions(self,stop_action,command,speed_sp,positions,tolerance):
4848
self._param['motor'].command = 'stop'
4949

5050
def test_stop_brake_no_ramp_med_speed_relative(self):
51+
if not self._param['has_brake']:
52+
self.skipTest('brake not supported by this motor controller')
5153
self.initialize_motor()
5254
self.run_to_positions('brake','run-to-rel-pos',400,[0,90,180,360,720,-720,-360,-180,-90,0],20)
5355

@@ -56,6 +58,8 @@ def test_stop_hold_no_ramp_med_speed_relative(self):
5658
self.run_to_positions('hold','run-to-rel-pos',400,[0,90,180,360,720,-720,-360,-180,-90,0],5)
5759

5860
def test_stop_brake_no_ramp_low_speed_relative(self):
61+
if not self._param['has_brake']:
62+
self.skipTest('brake not supported by this motor controller')
5963
self.initialize_motor()
6064
self.run_to_positions('brake','run-to-rel-pos',100,[0,90,180,360,720,-720,-360,-180,-90,0],20)
6165

@@ -64,6 +68,8 @@ def test_stop_hold_no_ramp_low_speed_relative(self):
6468
self.run_to_positions('hold','run-to-rel-pos',100,[0,90,180,360,720,-720,-360,-180,-90,0],5)
6569

6670
def test_stop_brake_no_ramp_high_speed_relative(self):
71+
if not self._param['has_brake']:
72+
self.skipTest('brake not supported by this motor controller')
6773
self.initialize_motor()
6874
self.run_to_positions('brake','run-to-rel-pos',900,[0,90,180,360,720,-720,-360,-180,-90,0],50)
6975

@@ -72,6 +78,8 @@ def test_stop_hold_no_ramp_high_speed_relative(self):
7278
self.run_to_positions('hold','run-to-rel-pos',100,[0,90,180,360,720,-720,-360,-180,-90,0],5)
7379

7480
def test_stop_brake_no_ramp_med_speed_absolute(self):
81+
if not self._param['has_brake']:
82+
self.skipTest('brake not supported by this motor controller')
7583
self.initialize_motor()
7684
self.run_to_positions('brake','run-to-abs-pos',400,[0,90,180,360,180,90,0,-90,-180,-360,-180,-90,0],20)
7785

@@ -80,6 +88,8 @@ def test_stop_hold_no_ramp_med_speed_absolute(self):
8088
self.run_to_positions('hold','run-to-abs-pos',400,[0,90,180,360,180,90,0,-90,-180,-360,-180,-90,0],5)
8189

8290
def test_stop_brake_no_ramp_low_speed_absolute(self):
91+
if not self._param['has_brake']:
92+
self.skipTest('brake not supported by this motor controller')
8393
self.initialize_motor()
8494
self.run_to_positions('brake','run-to-abs-pos',100,[0,90,180,360,180,90,0,-90,-180,-360,-180,-90,0],20)
8595

@@ -88,6 +98,8 @@ def test_stop_hold_no_ramp_low_speed_absolute(self):
8898
self.run_to_positions('hold','run-to-abs-pos',100,[0,90,180,360,180,90,0,-90,-180,-360,-180,-90,0],5)
8999

90100
def test_stop_brake_no_ramp_high_speed_absolute(self):
101+
if not self._param['has_brake']:
102+
self.skipTest('brake not supported by this motor controller')
91103
self.initialize_motor()
92104
self.run_to_positions('brake','run-to-abs-pos',900,[0,90,180,360,180,90,0,-90,-180,-360,-180,-90,0],50)
93105

@@ -97,14 +109,31 @@ def test_stop_hold_no_ramp_high_speed_absolute(self):
97109

98110
# Add all the tests to the suite - some tests apply only to certain drivers!
99111

100-
def AddTachoMotorMotionTestsToSuite( suite, driver_name, params ):
112+
def AddTachoMotorMotionTestsToSuite(suite, params):
101113
suite.addTest(ptc.ParameterizedTestCase.parameterize(TestMotorMotion, param=params))
102114

103115
if __name__ == '__main__':
104-
params = { 'motor': ev3.Motor('outA'), 'port': 'outA', 'driver_name': 'lego-ev3-l-motor' }
116+
ev3_params = {
117+
'motor': ev3.Motor('outA'),
118+
'port': 'outA',
119+
'driver_name': 'lego-ev3-l-motor',
120+
'has_brake': True,
121+
}
122+
brickpi_params = {
123+
'motor': ev3.Motor('ttyAMA0:MA'),
124+
'port': 'ttyAMA0:MA',
125+
'driver_name': 'lego-nxt-motor',
126+
'has_brake': False,
127+
}
128+
pistorms_params = {
129+
'motor': ev3.Motor('pistorms:BAM1'),
130+
'port': 'pistorms:BAM1',
131+
'driver_name': 'lego-nxt-motor',
132+
'has_brake': True,
133+
}
105134

106135
suite = unittest.TestSuite()
107136

108-
AddTachoMotorMotionTestsToSuite( suite, 'lego-ev3-l-motor', params )
137+
AddTachoMotorMotionTestsToSuite(suite, ev3_params)
109138

110139
unittest.TextTestRunner(verbosity=1,buffer=True ).run(suite)

0 commit comments

Comments
 (0)