def test_out_json_byte_empty(self): output_producer = OutputProducer(formatter=format_json, file=self.io) output_producer.out(CommandResultItem({'active': True, 'contents': b''})) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """{ "active": true, "contents": "" } """))
def test_out_table_list_of_lists(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = [['a', 'b'], ['c', 'd']] output_producer.out(CommandResultItem(obj)) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Column1 Column2 --------- --------- a b c d """))
def test_out_json_from_ordered_dict(self): # The JSON output when the input is OrderedDict should be serialized to JSON output_producer = OutputProducer(formatter=format_json, file=self.io) output_producer.out(CommandResultItem(OrderedDict({'active': True, 'id': '0b1f6472'}))) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """{ "active": true, "id": "0b1f6472" } """))
def test_out_table(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = OrderedDict() obj['active'] = True obj['val'] = '0b1f6472' output_producer.out(CommandResultItem(obj)) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """ Active Val -------- -------- 1 0b1f6472 """))
def test_out_table_no_query_no_transformer_order(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = {'name': 'qwerty', 'val': '0b1f6472qwerty', 'active': True, 'sub': '0b1f6472'} result_item = CommandResultItem(obj, table_transformer=None, is_query_active=False) output_producer.out(result_item) # Should be alphabetical order as no table transformer and query is not active. self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """ Active Name Sub Val -------- ------ -------- -------------- 1 qwerty 0b1f6472 0b1f6472qwerty """))
def test_out_table(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = OrderedDict() obj['active'] = True obj['val'] = '0b1f6472' output_producer.out(CommandResultItem(obj)) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Active Val -------- -------- True 0b1f6472 """))
def test_out_table_no_query_no_transformer_order(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = {'name': 'qwerty', 'val': '0b1f6472qwerty', 'active': True, 'sub': '0b1f6472'} result_item = CommandResultItem(obj, table_transformer=None, is_query_active=False) output_producer.out(result_item) # Should be alphabetical order as no table transformer and query is not active. self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Active Name Sub Val -------- ------ -------- -------------- True qwerty 0b1f6472 0b1f6472qwerty """))
def test_out_json_from_ordered_dict(self): """ The JSON output when the input is OrderedDict should be serialized to JSON """ output_producer = OutputProducer(formatter=format_json, file=self.io) output_producer.out(CommandResultItem(OrderedDict({'active': True, 'id': '0b1f6472'}))) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """{ "active": true, "id": "0b1f6472" } """))
def test_out_table_no_query_yes_jmespath_table_transformer(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = {'name': 'qwerty', 'val': '0b1f6472qwerty', 'active': True, 'sub': '0b1f6472'} result_item = CommandResultItem(obj, table_transformer='{Name:name, Val:val, Active:active}', is_query_active=False) output_producer.out(result_item) # Should be table transformer order self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Name Val Active ------ -------------- -------- qwerty 0b1f6472qwerty True """))
def test_out_table_complex_obj(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = OrderedDict() obj['name'] = 'qwerty' obj['val'] = '0b1f6472qwerty' obj['sub'] = {'1'} result_item = CommandResultItem(obj) output_producer.out(result_item) self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Name Val ------ -------------- qwerty 0b1f6472qwerty """))
def test_out_table_no_query_yes_transformer_order(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = {'name': 'qwerty', 'val': '0b1f6472qwerty', 'active': True, 'sub': '0b1f6472'} def transformer(r): return OrderedDict([('Name', r['name']), ('Val', r['val']), ('Active', r['active']), ('Sub', r['sub'])]) result_item = CommandResultItem(obj, table_transformer=transformer, is_query_active=False) output_producer.out(result_item) # Should be table transformer order self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Name Val Active Sub ------ -------------- -------- -------- qwerty 0b1f6472qwerty 1 0b1f6472 """))
def test_out_table_no_query_yes_transformer_order(self): output_producer = OutputProducer(formatter=format_table, file=self.io) obj = {'name': 'qwerty', 'val': '0b1f6472qwerty', 'active': True, 'sub': '0b1f6472'} def transformer(r): return OrderedDict([('Name', r['name']), ('Val', r['val']), ('Active', r['active']), ('Sub', r['sub'])]) result_item = CommandResultItem(obj, table_transformer=transformer, is_query_active=False) output_producer.out(result_item) # Should be table transformer order self.assertEqual(util.normalize_newlines(self.io.getvalue()), util.normalize_newlines( """Name Val Active Sub ------ -------------- -------- -------- qwerty 0b1f6472qwerty True 0b1f6472 """))