diff options
author | Scott Moser <smoser@ubuntu.com> | 2015-03-17 09:09:11 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2015-03-17 09:09:11 -0400 |
commit | ad820a9465642fa13aa6f75e5efb3fbe3059dedc (patch) | |
tree | 5460097b13a7a67322a2773ae695784bed3e773c /tests/unittests/test_datasource/test_smartos.py | |
parent | 516af9ba927dd9b4dcc3461f8a8bb6883c61c036 (diff) | |
parent | c8a7b446de26c6bc19df1b8bb7d2b39cb9487749 (diff) | |
download | vyos-cloud-init-ad820a9465642fa13aa6f75e5efb3fbe3059dedc.tar.gz vyos-cloud-init-ad820a9465642fa13aa6f75e5efb3fbe3059dedc.zip |
SmartOS: fixes for python3 reading from serial device.
We were hitting exceptions when writing to the SmartOS serial console and, once
that was fixed, we were hanging permanently waiting for b"." == "." to be true.
This fixes both of those issues.
Diffstat (limited to 'tests/unittests/test_datasource/test_smartos.py')
-rw-r--r-- | tests/unittests/test_datasource/test_smartos.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tests/unittests/test_datasource/test_smartos.py b/tests/unittests/test_datasource/test_smartos.py index 8b62b1b1..cb0ab984 100644 --- a/tests/unittests/test_datasource/test_smartos.py +++ b/tests/unittests/test_datasource/test_smartos.py @@ -36,6 +36,8 @@ import tempfile import stat import uuid +import six + MOCK_RETURNS = { 'hostname': 'test-host', @@ -78,24 +80,27 @@ class MockSerial(object): return True def write(self, line): - line = line.replace('GET ', '') + if not isinstance(line, six.binary_type): + raise TypeError("Should be writing binary lines.") + line = line.decode('ascii').replace('GET ', '') self.last = line.rstrip() def readline(self): if self.new: self.new = False if self.last in self.mockdata: - return 'SUCCESS\n' + line = 'SUCCESS\n' else: - return 'NOTFOUND %s\n' % self.last + line = 'NOTFOUND %s\n' % self.last - if self.last in self.mockdata: + elif self.last in self.mockdata: if not self.mocked_out: self.mocked_out = [x for x in self._format_out()] if len(self.mocked_out) > self.count: self.count += 1 - return self.mocked_out[self.count - 1] + line = self.mocked_out[self.count - 1] + return line.encode('ascii') def _format_out(self): if self.last in self.mockdata: |