From 502c8c5ce8204c88cb8051d22a4919d95bedf2d2 Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Mon, 7 May 2018 16:50:13 -0400 Subject: [PATCH] Refactor whiteboard example test Moved original whiteboard example test to selftests and then created a simpler example code. Reference: https://trello.com/c/sG6J0Vpw Signed-off-by: Wainer dos Santos Moschetta --- examples/tests/whiteboard.py | 32 +++---------- .../tests/whiteboard.py.data/whiteboard.yaml | 16 ------- selftests/.data/whiteboard.py | 45 +++++++++++++++++++ selftests/unit/test_runner_queue.py | 2 +- 4 files changed, 51 insertions(+), 44 deletions(-) delete mode 100644 examples/tests/whiteboard.py.data/whiteboard.yaml create mode 100755 selftests/.data/whiteboard.py diff --git a/examples/tests/whiteboard.py b/examples/tests/whiteboard.py index 81c1e667..39198a9c 100755 --- a/examples/tests/whiteboard.py +++ b/examples/tests/whiteboard.py @@ -2,8 +2,6 @@ import base64 -from six.moves import xrange as range - from avocado import Test from avocado import main @@ -11,34 +9,14 @@ from avocado import main class WhiteBoard(Test): """ - Simple test that saves test custom data to the test whiteboard - - :param whiteboard_data_file: File to be used as source for whiteboard data - :param whiteboard_data_size: Size of the generated data of the whiteboard - :param whiteboard_data_text: Text used when no file supplied - :param whiteboard_writes: How many times to copy the data into whiteboard + Example of whiteboard usage. """ def test(self): - data_file = self.params.get('whiteboard_data_file', default='') - data_size = self.params.get('whiteboard_data_size', default='10') - if data_file: - self.log.info('Writing data to whiteboard from file: %s', - data_file) - with open(data_file, 'r') as whiteboard_file: - size = int(data_size) - data = whiteboard_file.read(size) - else: - offset = int(data_size) - 1 - data = self.params.get('whiteboard_data_text', - default='default whiteboard text')[0:offset] - - iterations = int(self.params.get('whiteboard_writes', default=1)) - - result = '' - for _ in range(0, iterations): - result += data - self.whiteboard = base64.encodestring(result.encode()).decode('ascii') + """ + This should write a message to the whiteboard. + """ + self.whiteboard = base64.encodestring(b'My message encoded in base64').decode('ascii') if __name__ == "__main__": diff --git a/examples/tests/whiteboard.py.data/whiteboard.yaml b/examples/tests/whiteboard.py.data/whiteboard.yaml deleted file mode 100644 index d7edfba2..00000000 --- a/examples/tests/whiteboard.py.data/whiteboard.yaml +++ /dev/null @@ -1,16 +0,0 @@ -source: !mux - string: - whiteboard_data_text: 'foo bar foo baz' - urandom: - whiteboard_data_file: '/dev/urandom' - -iterations: !mux - single: - whiteboard_writes: 1 - dozen: - whiteboard_writes: 12 -size: !mux - onekilo: - whiteboard_data_size: 1024 - onemega: - whiteboard_data_size: 1048576 diff --git a/selftests/.data/whiteboard.py b/selftests/.data/whiteboard.py new file mode 100755 index 00000000..81c1e667 --- /dev/null +++ b/selftests/.data/whiteboard.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import base64 + +from six.moves import xrange as range + +from avocado import Test +from avocado import main + + +class WhiteBoard(Test): + + """ + Simple test that saves test custom data to the test whiteboard + + :param whiteboard_data_file: File to be used as source for whiteboard data + :param whiteboard_data_size: Size of the generated data of the whiteboard + :param whiteboard_data_text: Text used when no file supplied + :param whiteboard_writes: How many times to copy the data into whiteboard + """ + + def test(self): + data_file = self.params.get('whiteboard_data_file', default='') + data_size = self.params.get('whiteboard_data_size', default='10') + if data_file: + self.log.info('Writing data to whiteboard from file: %s', + data_file) + with open(data_file, 'r') as whiteboard_file: + size = int(data_size) + data = whiteboard_file.read(size) + else: + offset = int(data_size) - 1 + data = self.params.get('whiteboard_data_text', + default='default whiteboard text')[0:offset] + + iterations = int(self.params.get('whiteboard_writes', default=1)) + + result = '' + for _ in range(0, iterations): + result += data + self.whiteboard = base64.encodestring(result.encode()).decode('ascii') + + +if __name__ == "__main__": + main() diff --git a/selftests/unit/test_runner_queue.py b/selftests/unit/test_runner_queue.py index a7f9007f..274a1a0a 100644 --- a/selftests/unit/test_runner_queue.py +++ b/selftests/unit/test_runner_queue.py @@ -55,7 +55,7 @@ class TestRunnerQueue(unittest.TestCase): 'base_logdir': self.tmpdir}] msg = self._run_test(factory) - self.assertEqual(msg['whiteboard'], 'ZGVmYXVsdCB3\n') + self.assertEqual(msg['whiteboard'], 'TXkgbWVzc2FnZSBlbmNvZGVkIGluIGJhc2U2NA==\n') def tearDown(self): shutil.rmtree(self.tmpdir) -- GitLab