from common import * from trezor import io class TestTrezorIoSdcard(unittest.TestCase): def test_start(self): self.assertTrue(io.sdcard.is_present()) def test_power(self): x = bytearray(8 * 512) self.assertEqual(io.sdcard.capacity(), 0) with self.assertRaises(OSError): io.sdcard.read(0, x) io.sdcard.power_on() self.assertTrue(io.sdcard.capacity() > 0) io.sdcard.read(0, x) io.sdcard.power_off() self.assertEqual(io.sdcard.capacity(), 0) with self.assertRaises(OSError): io.sdcard.read(0, x) def test_read(self): x = bytearray(8 * 512) io.sdcard.power_on() io.sdcard.read(0, x) io.sdcard.power_off() with self.assertRaises(OSError): io.sdcard.read(0, x) def test_read_write(self): r = bytearray(8 * 512) w0 = bytearray(b"0" * (8 * 512)) w1 = bytearray(b"1" * (8 * 512)) io.sdcard.power_on() io.sdcard.write(0, w0) io.sdcard.read(0, r) self.assertEqual(r, w0) io.sdcard.write(0, w1) io.sdcard.read(0, r) self.assertEqual(r, w1) io.sdcard.power_off() if __name__ == "__main__": unittest.main()