Exemple #1
0
 def test_file_read_raw(self, mbrick):
     mbrick.file_open_read.return_value = (0x42, 7)
     mbrick.file_read.return_value = (0x42, bytes.fromhex("21222324252627"))
     with mbrick.open_file("test.bin", "rb", buffering=0) as f:
         assert f.read() == bytes.fromhex("21222324252627")
     assert mbrick.mock_calls == [
         call.file_open_read("test.bin"),
         call.file_read(0x42, 7),
         call.file_close(0x42),
     ]
Exemple #2
0
 def test_find_files_interrupted(self, mbrick):
     mbrick.file_find_first.return_value = (0x42, "test.rxe", 0x04030201)
     mbrick.file_find_next.side_effect = [nxt.error.FileNotFoundError()]
     g = mbrick.find_files("*.*")
     assert next(g) == ("test.rxe", 0x04030201)
     g.close()
     assert mbrick.mock_calls == [
         call.file_find_first("*.*"),
         call.file_close(0x42),
     ]
Exemple #3
0
 def test_find_files_one(self, mbrick):
     mbrick.file_find_first.return_value = (0x42, "test.rxe", 0x04030201)
     mbrick.file_find_next.side_effect = [nxt.error.FileNotFoundError()]
     results = list(mbrick.find_files("*.*"))
     assert results == [("test.rxe", 0x04030201)]
     assert mbrick.mock_calls == [
         call.file_find_first("*.*"),
         call.file_find_next(0x42),
         call.file_close(0x42),
     ]
Exemple #4
0
 def test_file_write_raw(self, mbrick):
     mbrick.file_open_write.return_value = 0x42
     mbrick.file_write.return_value = (0x42, 7)
     f = mbrick.open_file("test.bin", "wb", 7, buffering=0)
     f.write(bytes.fromhex("21222324252627"))
     f.close()
     assert mbrick.mock_calls == [
         call.file_open_write("test.bin", 7),
         call.file_write(0x42, bytes.fromhex("21222324252627")),
         call.file_close(0x42),
     ]
Exemple #5
0
 def test_file_write_text_encoding(self, mbrick):
     mbrick.file_open_write.return_value = 0x42
     mbrick.file_write.return_value = (0x42, 16)
     f = mbrick.open_file("test.txt", "wt", 16, errors="replace")
     f.write("un petit café ?\n")
     f.close()
     assert mbrick.mock_calls == [
         call.file_open_write("test.txt", 16),
         call.file_write(0x42, b"un petit caf? ?\n"),
         call.file_close(0x42),
     ]
Exemple #6
0
 def test_file_read_text(self, mbrick):
     mbrick.file_open_read.return_value = (0x42, 12)
     mbrick.file_read.return_value = (0x42, b"hello\nworld\n")
     with mbrick.open_file("test.txt") as f:
         results = list(f)
     assert results == ["hello\n", "world\n"]
     assert mbrick.mock_calls == [
         call.file_open_read("test.txt"),
         call.file_read(0x42, 12),
         call.file_close(0x42),
     ]
Exemple #7
0
 def test_file_write_text(self, mbrick):
     mbrick.file_open_write.return_value = 0x42
     mbrick.file_write.return_value = (0x42, 12)
     f = mbrick.open_file("test.txt", "wt", 12)
     f.write("hello\n")
     f.write("world\n")
     f.close()
     assert mbrick.mock_calls == [
         call.file_open_write("test.txt", 12),
         call.file_write(0x42, b"hello\nworld\n"),
         call.file_close(0x42),
     ]
Exemple #8
0
 def test_file_write_closed(self, mbrick):
     mbrick.file_open_write.return_value = 0x42
     mbrick.file_write.return_value = (0x42, 7)
     # Write directly to raw file to bypass error check in buffered file.
     f = mbrick.open_file("test.bin", "wb", 7, buffering=0)
     f.close()
     assert f.closed
     with pytest.raises(ValueError):
         f.write(bytes.fromhex("28"))
     assert mbrick.mock_calls == [
         call.file_open_write("test.bin", 7),
         call.file_close(0x42),
     ]
Exemple #9
0
 def test_file_write_too_much(self, mbrick):
     mbrick.file_open_write.return_value = 0x42
     mbrick.file_write.return_value = (0x42, 7)
     f = mbrick.open_file("test.bin", "wb", 7)
     f.write(bytes.fromhex("2122232425262728"))
     with pytest.raises(ValueError):
         # Flush done on close.
         f.close()
     assert f.closed
     assert mbrick.mock_calls == [
         call.file_open_write("test.bin", 7),
         call.file_write(0x42, bytes.fromhex("21222324252627")),
         call.file_close(0x42),
     ]