MCPcopy Create free account
hub / github.com/JSBSim-Team/jsbsim / shell

Method shell

tests/TestInputSocket.py:123–195  ·  view source on GitHub ↗
(self, root, dt, reader, writer)

Source from the content-addressed store, hash-verified

121 asyncio.run(self.run_test(1137, lambda r, w: self.shell(root, dt, r, w)))
122
123 async def shell(self, root, dt, reader, writer):
124 await self.sanity_check(reader, writer)
125 msg = (await self.telnet.send_command("info")).splitlines()
126
127 # Check the aircraft name and its version
128 self.assertEqual(msg[2].split(":")[1].strip(), root.attrib["name"].strip())
129 self.assertEqual(msg[1].split(":")[1].strip(), root.attrib["version"].strip())
130
131 # Check that the simulation time is 0.0
132 self.assertEqual(float(msg[3].split(":")[1].strip()), 0.0)
133 self.assertEqual(self._fdm.get_sim_time(), 0.0)
134 self.assertEqual(
135 await self.telnet.get_property_value("simulation/sim-time-sec"),
136 0.0,
137 )
138
139 # Check that 'iterate' iterates the correct number of times
140 await self.telnet.send_command("iterate 19")
141 self.assertEqual(self._fdm.get_sim_time(), 19.0 * dt)
142 self.assertAlmostEqual(
143 await self.telnet.get_property_value("simulation/sim-time-sec"),
144 self._fdm.get_sim_time(),
145 delta=1e-5,
146 )
147 self.assertTrue(self._fdm.holding())
148
149 # Wait a little bit and make sure that the simulation time has not
150 # changed meanwhile thus confirming that the simulation is on hold.
151 await asyncio.sleep(0.5)
152 self.assertEqual(self._fdm.get_sim_time(), 19.0 * dt)
153 self.assertAlmostEqual(
154 await self.telnet.get_property_value("simulation/sim-time-sec"),
155 self._fdm.get_sim_time(),
156 delta=1e-5,
157 )
158
159 # Modify the tank[0] contents via the "send" command
160 half_contents = 0.5 * (
161 await self.telnet.get_property_value("propulsion/tank/contents-lbs")
162 )
163 await self.telnet.send_command(
164 "set propulsion/tank/contents-lbs " + str(half_contents)
165 )
166 self.assertEqual(
167 await self.telnet.get_property_value("propulsion/tank/contents-lbs"),
168 half_contents,
169 )
170
171 # Check the resume/hold commands
172 t = self._fdm.get_sim_time()
173 await self.telnet.send_command("resume")
174 self.assertNotEqual(self._fdm.get_sim_time(), t)
175 self.assertFalse(self._fdm.holding())
176 await self.telnet.send_command("hold")
177 t = self._fdm.get_sim_time()
178 self.assertTrue(self._fdm.holding())
179 self.assertAlmostEqual(
180 await self.telnet.get_property_value("simulation/sim-time-sec"),

Callers 1

test_input_socketMethod · 0.95

Calls 5

sanity_checkMethod · 0.95
assertEqualMethod · 0.95
assertAlmostEqualMethod · 0.95
send_commandMethod · 0.80
get_property_valueMethod · 0.80

Tested by

no test coverage detected