aboutsummaryrefslogtreecommitdiff
path: root/pw_console/py/table_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'pw_console/py/table_test.py')
-rw-r--r--pw_console/py/table_test.py303
1 files changed, 164 insertions, 139 deletions
diff --git a/pw_console/py/table_test.py b/pw_console/py/table_test.py
index d8896c926..6714c230f 100644
--- a/pw_console/py/table_test.py
+++ b/pw_console/py/table_test.py
@@ -39,72 +39,83 @@ formatter = logging.Formatter(
'%(levelname)s'
'\x1b[0m'
' '
- '%(message)s', _TIMESTAMP_FORMAT)
+ '%(message)s',
+ _TIMESTAMP_FORMAT,
+)
def make_log(**kwargs):
"""Create a LogLine instance."""
# Construct a LogRecord
- attributes = dict(name='testlogger',
- levelno=logging.INFO,
- levelname='INF',
- msg='[%s] %.3f %s',
- args=('MOD1', 3.14159, 'Real message here'),
- created=_TIMESTAMP_SAMPLE.timestamp(),
- filename='test.py',
- lineno=42,
- pathname='/home/user/test.py')
+ attributes = dict(
+ name='testlogger',
+ levelno=logging.INFO,
+ levelname='INF',
+ msg='[%s] %.3f %s',
+ args=('MOD1', 3.14159, 'Real message here'),
+ created=_TIMESTAMP_SAMPLE.timestamp(),
+ filename='test.py',
+ lineno=42,
+ pathname='/home/user/test.py',
+ )
# Override any above attrs that are passed in.
attributes.update(kwargs)
# Create the record
record = logging.makeLogRecord(dict(attributes))
# Format
formatted_message = formatter.format(record)
- log_line = LogLine(record=record,
- formatted_log=formatted_message,
- ansi_stripped_log='')
+ log_line = LogLine(
+ record=record, formatted_log=formatted_message, ansi_stripped_log=''
+ )
log_line.update_metadata()
return log_line
class TestTableView(unittest.TestCase):
"""Tests for rendering log lines into tables."""
+
def setUp(self):
# Show large diffs
self.maxDiff = None # pylint: disable=invalid-name
- self.prefs = ConsolePrefs(project_file=False,
- project_user_file=False,
- user_file=False)
+ self.prefs = ConsolePrefs(
+ project_file=False, project_user_file=False, user_file=False
+ )
self.prefs.reset_config()
- @parameterized.expand([
- (
- 'Correct column widths with all fields set',
- [
- make_log(
- args=('M1', 1.2345, 'Something happened'),
- extra_metadata_fields=dict(module='M1', anumber=12)),
-
- make_log(
- args=('MD2', 567.5, 'Another cool event'),
- extra_metadata_fields=dict(module='MD2', anumber=123)),
- ],
- dict(module=len('MD2'), anumber=len('123')),
- ),
- (
- 'Missing metadata fields on some rows',
- [
- make_log(
- args=('M1', 54321.2, 'Something happened'),
- extra_metadata_fields=dict(module='M1', anumber=54321.2)),
-
- make_log(
- args=('MOD2', 567.5, 'Another cool event'),
- extra_metadata_fields=dict(module='MOD2')),
- ],
- dict(module=len('MOD2'), anumber=len('54321.200')),
- ),
- ]) # yapf: disable
+ @parameterized.expand(
+ [
+ (
+ 'Correct column widths with all fields set',
+ [
+ make_log(
+ args=('M1', 1.2345, 'Something happened'),
+ extra_metadata_fields=dict(module='M1', anumber=12),
+ ),
+ make_log(
+ args=('MD2', 567.5, 'Another cool event'),
+ extra_metadata_fields=dict(module='MD2', anumber=123),
+ ),
+ ],
+ dict(module=len('MD2'), anumber=len('123')),
+ ),
+ (
+ 'Missing metadata fields on some rows',
+ [
+ make_log(
+ args=('M1', 54321.2, 'Something happened'),
+ extra_metadata_fields=dict(
+ module='M1', anumber=54321.2
+ ),
+ ),
+ make_log(
+ args=('MOD2', 567.5, 'Another cool event'),
+ extra_metadata_fields=dict(module='MOD2'),
+ ),
+ ],
+ dict(module=len('MOD2'), anumber=len('54321.200')),
+ ),
+ ]
+ )
def test_column_widths(self, _name, logs, expected_widths) -> None:
"""Test colum widths calculation."""
table = TableView(self.prefs)
@@ -125,44 +136,53 @@ class TestTableView(unittest.TestCase):
}
self.assertCountEqual(expected_widths, results)
- @parameterized.expand([
- (
- 'Build header adding fields incrementally',
- [
- make_log(
- args=('MODULE2', 567.5, 'Another cool event'),
- extra_metadata_fields=dict(
- # timestamp missing
- module='MODULE2')),
-
- make_log(
- args=('MODULE1', 54321.2, 'Something happened'),
- extra_metadata_fields=dict(
+ @parameterized.expand(
+ [
+ (
+ 'Build header adding fields incrementally',
+ [
+ make_log(
+ args=('MODULE2', 567.5, 'Another cool event'),
+ extra_metadata_fields=dict(
+ # timestamp missing
+ module='MODULE2'
+ ),
+ ),
+ make_log(
+ args=('MODULE1', 54321.2, 'Something happened'),
+ extra_metadata_fields=dict(
+ # timestamp added in
+ module='MODULE1',
+ timestamp=54321.2,
+ ),
+ ),
+ ],
+ [
+ [
+ ('bold', 'Time '),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Lev'),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Module '),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Message'),
+ ],
+ [
+ ('bold', 'Time '),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Lev'),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Module '),
+ _TABLE_PADDING_FRAGMENT,
# timestamp added in
- module='MODULE1', timestamp=54321.2)),
- ],
- [
- [('bold', 'Time '),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Lev'),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Module '),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Message')],
-
- [('bold', 'Time '),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Lev'),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Module '),
- _TABLE_PADDING_FRAGMENT,
- # timestamp added in
- ('bold', 'Timestamp'),
- _TABLE_PADDING_FRAGMENT,
- ('bold', 'Message')],
- ],
- ),
- ]) # yapf: disable
+ ('bold', 'Timestamp'),
+ _TABLE_PADDING_FRAGMENT,
+ ('bold', 'Message'),
+ ],
+ ],
+ ),
+ ]
+ )
def test_formatted_header(self, _name, logs, expected_headers) -> None:
"""Test colum widths calculation."""
table = TableView(self.prefs)
@@ -171,68 +191,73 @@ class TestTableView(unittest.TestCase):
table.update_metadata_column_widths(log)
self.assertEqual(table.formatted_header(), header)
- @parameterized.expand([
- (
- 'Build rows adding fields incrementally',
- [
- make_log(
- args=('MODULE2', 567.5, 'Another cool event'),
- extra_metadata_fields=dict(
- # timestamp missing
- module='MODULE2',
- msg='Another cool event')),
-
- make_log(
- args=('MODULE2', 567.5, 'Another cool event'),
- extra_metadata_fields=dict(
- # timestamp and msg missing
- module='MODULE2')),
-
- make_log(
- args=('MODULE1', 54321.2, 'Something happened'),
- extra_metadata_fields=dict(
- # timestamp added in
- module='MODULE1', timestamp=54321.2,
- msg='Something happened')),
- ],
- [
+ @parameterized.expand(
+ [
+ (
+ 'Build rows adding fields incrementally',
[
- ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-level-20', 'INF'),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-table-column-0', 'MODULE2'),
- _TABLE_PADDING_FRAGMENT,
- ('', 'Another cool event'),
- ('', '\n')
+ make_log(
+ args=('MODULE2', 567.5, 'Another cool event'),
+ extra_metadata_fields=dict(
+ # timestamp missing
+ module='MODULE2',
+ msg='Another cool event',
+ ),
+ ),
+ make_log(
+ args=('MODULE2', 567.5, 'Another cool event'),
+ extra_metadata_fields=dict(
+ # timestamp and msg missing
+ module='MODULE2'
+ ),
+ ),
+ make_log(
+ args=('MODULE1', 54321.2, 'Something happened'),
+ extra_metadata_fields=dict(
+ # timestamp added in
+ module='MODULE1',
+ timestamp=54321.2,
+ msg='Something happened',
+ ),
+ ),
],
-
- [
- ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-level-20', 'INF'),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-table-column-0', 'MODULE2'),
- _TABLE_PADDING_FRAGMENT,
- ('', '[MODULE2] 567.500 Another cool event'),
- ('', '\n')
- ],
-
[
- ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-level-20', 'INF'),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-table-column-0', 'MODULE1'),
- _TABLE_PADDING_FRAGMENT,
- ('class:log-table-column-1', '54321.200'),
- _TABLE_PADDING_FRAGMENT,
- ('', 'Something happened'),
- ('', '\n')
+ [
+ ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-level-20', 'INF'),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-table-column-0', 'MODULE2'),
+ _TABLE_PADDING_FRAGMENT,
+ ('', 'Another cool event'),
+ ('', '\n'),
+ ],
+ [
+ ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-level-20', 'INF'),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-table-column-0', 'MODULE2'),
+ _TABLE_PADDING_FRAGMENT,
+ ('', '[MODULE2] 567.500 Another cool event'),
+ ('', '\n'),
+ ],
+ [
+ ('class:log-time', _TIMESTAMP_SAMPLE_STRING),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-level-20', 'INF'),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-table-column-0', 'MODULE1'),
+ _TABLE_PADDING_FRAGMENT,
+ ('class:log-table-column-1', '54321.200'),
+ _TABLE_PADDING_FRAGMENT,
+ ('', 'Something happened'),
+ ('', '\n'),
+ ],
],
- ],
- ),
- ]) # yapf: disable
+ ),
+ ]
+ )
def test_formatted_rows(self, _name, logs, expected_log_format) -> None:
"""Test colum widths calculation."""
table = TableView(self.prefs)