From: Douglas Bagnall Date: Thu, 12 Apr 2018 03:57:09 +0000 (+1200) Subject: python/tests/graph: actually test graphs, don't print X-Git-Tag: ldb-1.4.0~589 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d1312c86d6ad5c813838eb653f71eedda8a97292;p=thirdparty%2Fsamba.git python/tests/graph: actually test graphs, don't print Signed-off-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/tests/graph.py b/python/samba/tests/graph.py index 2193d422240..7ea53caa734 100644 --- a/python/samba/tests/graph.py +++ b/python/samba/tests/graph.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # Test graph dot file generation # # Copyright (C) Andrew Bartlett 2018. @@ -93,7 +94,6 @@ class DotFileTests(samba.tests.TestCaseInTempDir): g = graph.dot_graph(vertices, edges, directed=directed, title=title) - print(g) lines = g.split('\n') self.assertHeader(lines, title, directed) self.assertVertices(lines[7:], vertices) @@ -123,27 +123,269 @@ class DistanceTests(samba.tests.TestCase): ('cat', 'ant'), ('cat', 'dog')] + expected = { + "utf8 True, colour None": ''' + destination + ╭────── ant + │╭───── bat + ││╭──── cat + │││╭─── dog + ││││╭── elephant + source │││││╭─ frog + ant ·1221- + bat 3·211- + cat 12·12- + dog ---·-- +elephant 2311·- + frog 23121·''', + 'utf8 True, colour ansi': ''' + destination + ╭────── ant + │╭───── bat + ││╭──── cat + │││╭─── dog + ││││╭── elephant + source │││││╭─ frog + ant ·1221- + bat 3·211- + cat 12·12- + dog ---·-- +elephant 2311·- + frog 23121· + ''', + 'utf8 True, colour ansi-heatmap': ''' + destination + ╭────── ant + │╭───── bat + ││╭──── cat + │││╭─── dog + ││││╭── elephant + source │││││╭─ frog + ant ·1221- + bat 3·211- + cat 12·12- + dog ---·-- +elephant 2311·- + frog 23121· + ''', + 'utf8 True, colour xterm-256color': ''' + destination + ╭────── ant + │╭───── bat + ││╭──── cat + │││╭─── dog + ││││╭── elephant + source │││││╭─ frog + ant ·1221- + bat 3·211- + cat 12·12- + dog ---·-- +elephant 2311·- + frog 23121· + ''', +'utf8 True, colour xterm-256color-heatmap': ''' + destination + ╭────── ant + │╭───── bat + ││╭──── cat + │││╭─── dog + ││││╭── elephant + source │││││╭─ frog + ant ·1221- + bat 3·211- + cat 12·12- + dog ---·-- +elephant 2311·- + frog 23121· +''', +'utf8 False, colour None': ''' + destination + ,------ ant + |,----- bat + ||,---- cat + |||,--- dog + ||||,-- elephant + source |||||,- frog + ant 01221- + bat 30211- + cat 12012- + dog ---0-- +elephant 23110- + frog 231210 +''', +'utf8 False, colour ansi': ''' + destination + ,------ ant + |,----- bat + ||,---- cat + |||,--- dog + ||||,-- elephant + source |||||,- frog + ant 01221- + bat 30211- + cat 12012- + dog ---0-- +elephant 23110- + frog 231210 +''', +'utf8 False, colour ansi-heatmap': ''' + destination + ,------ ant + |,----- bat + ||,---- cat + |||,--- dog + ||||,-- elephant + source |||||,- frog + ant 01221- + bat 30211- + cat 12012- + dog ---0-- +elephant 23110- + frog 231210 +''', +'utf8 False, colour xterm-256color': ''' + destination + ,------ ant + |,----- bat + ||,---- cat + |||,--- dog + ||||,-- elephant + source |||||,- frog + ant 01221- + bat 30211- + cat 12012- + dog ---0-- +elephant 23110- + frog 231210 +''', +'utf8 False, colour xterm-256color-heatmap': ''' + destination + ,------ ant + |,----- bat + ||,---- cat + |||,--- dog + ||||,-- elephant + source |||||,- frog + ant 01221- + bat 30211- + cat 12012- + dog ---0-- +elephant 23110- + frog 231210 +''' + } for utf8 in (True, False): for colour in self.sorted_colour_sets: - print('utf8 %s, colour %s' % (utf8, colour)) + k = 'utf8 %s, colour %s' % (utf8, colour) s = graph.distance_matrix(None, edges, utf8=utf8, colour=colour) - print(s) - print() + self.assertStringsEqual(s, expected[k], strip=True, + msg='Wrong output: %s\n\n%s' % (k, s)) def test_simple_distance2(self): edges = [('ant', 'bat'), ('cat', 'bat'), ('bat', 'ant'), ('ant', 'cat')] - + expected = { + 'utf8 True, colour None': ''' + destination + ╭─── ant + │╭── bat +source ││╭─ cat + ant ·11 + bat 1·2 + cat 21· + ''', + 'utf8 True, colour ansi': ''' + destination + ╭─── ant + │╭── bat +source ││╭─ cat + ant ·11 + bat 1·2 + cat 21· + ''', +'utf8 True, colour ansi-heatmap': ''' + destination + ╭─── ant + │╭── bat +source ││╭─ cat + ant ·11 + bat 1·2 + cat 21· + ''', +'utf8 True, colour xterm-256color': ''' + destination + ╭─── ant + │╭── bat +source ││╭─ cat + ant ·11 + bat 1·2 + cat 21· +''', +'utf8 True, colour xterm-256color-heatmap': ''' + destination + ╭─── ant + │╭── bat +source ││╭─ cat + ant ·11 + bat 1·2 + cat 21· +''', +'utf8 False, colour None': ''' + destination + ,--- ant + |,-- bat +source ||,- cat + ant 011 + bat 102 + cat 210 +''', +'utf8 False, colour ansi': ''' + destination + ,--- ant + |,-- bat +source ||,- cat + ant 011 + bat 102 + cat 210 +''', +'utf8 False, colour ansi-heatmap': ''' + destination + ,--- ant + |,-- bat +source ||,- cat + ant 011 + bat 102 + cat 210 +''', +'utf8 False, colour xterm-256color': ''' + destination + ,--- ant + |,-- bat +source ||,- cat + ant 011 + bat 102 + cat 210 +''', +'utf8 False, colour xterm-256color-heatmap': ''' + destination + ,--- ant + |,-- bat +source ||,- cat + ant 011 + bat 102 + cat 210 +''' + } for utf8 in (True, False): for colour in self.sorted_colour_sets: - print('utf8 %s, colour %s' % (utf8, colour)) + k = 'utf8 %s, colour %s' % (utf8, colour) s = graph.distance_matrix(None, edges, utf8=utf8, colour=colour) - print(s) - print() + self.assertStringsEqual(s, expected[k], strip=True, + msg='Wrong output: %s\n\n%s' % (k, s)) def test_simple_distance3(self): edges = [('ant', 'bat'), @@ -151,11 +393,142 @@ class DistanceTests(samba.tests.TestCase): ('cat', 'dog'), ('dog', 'ant'), ('dog', 'eel')] - + expected = { +'utf8 True, colour None': ''' + destination + ╭───── ant + │╭──── bat + ││╭─── cat + │││╭── dog +source ││││╭─ eel + ant ·1234 + bat 3·123 + cat 23·12 + dog 123·1 + eel ----· +''', +'utf8 True, colour ansi': ''' + destination + ╭───── ant + │╭──── bat + ││╭─── cat + │││╭── dog +source ││││╭─ eel + ant ·1234 + bat 3·123 + cat 23·12 + dog 123·1 + eel ----· +''', +'utf8 True, colour ansi-heatmap': ''' + destination + ╭───── ant + │╭──── bat + ││╭─── cat + │││╭── dog +source ││││╭─ eel + ant ·1234 + bat 3·123 + cat 23·12 + dog 123·1 + eel ----· +''', +'utf8 True, colour xterm-256color': ''' + destination + ╭───── ant + │╭──── bat + ││╭─── cat + │││╭── dog +source ││││╭─ eel + ant ·1234 + bat 3·123 + cat 23·12 + dog 123·1 + eel ----· +''', +'utf8 True, colour xterm-256color-heatmap': ''' + destination + ╭───── ant + │╭──── bat + ││╭─── cat + │││╭── dog +source ││││╭─ eel + ant ·1234 + bat 3·123 + cat 23·12 + dog 123·1 + eel ----· +''', +'utf8 False, colour None': ''' + destination + ,----- ant + |,---- bat + ||,--- cat + |||,-- dog +source ||||,- eel + ant 01234 + bat 30123 + cat 23012 + dog 12301 + eel ----0 +''', +'utf8 False, colour ansi': ''' + destination + ,----- ant + |,---- bat + ||,--- cat + |||,-- dog +source ||||,- eel + ant 01234 + bat 30123 + cat 23012 + dog 12301 + eel ----0 +''', +'utf8 False, colour ansi-heatmap': ''' + destination + ,----- ant + |,---- bat + ||,--- cat + |||,-- dog +source ||||,- eel + ant 01234 + bat 30123 + cat 23012 + dog 12301 + eel ----0 +''', +'utf8 False, colour xterm-256color': +''' destination + ,----- ant + |,---- bat + ||,--- cat + |||,-- dog +source ||||,- eel + ant 01234 + bat 30123 + cat 23012 + dog 12301 + eel ----0 +''', +'utf8 False, colour xterm-256color-heatmap': ''' + destination + ,----- ant + |,---- bat + ||,--- cat + |||,-- dog +source ||||,- eel + ant 01234 + bat 30123 + cat 23012 + dog 12301 + eel ----0 +''' + } for utf8 in (True, False): for colour in self.sorted_colour_sets: - print('utf8 %s, colour %s' % (utf8, colour)) + k = 'utf8 %s, colour %s' % (utf8, colour) s = graph.distance_matrix(None, edges, utf8=utf8, colour=colour) - print(s) - print() + self.assertStringsEqual(s, expected[k], strip=True, + msg='Wrong output: %s\n\n%s' % (k, s))