def test_deep_breadcrumbs(self): obj1 = singleton('obj1') obj2 = singleton('obj2') gen1 = generator(obj1, obj2) gen2 = generator(obj1) self.checkRaises( dict(x=[1, ('a', 'b', gen1), 3], y=[3, 4]), dict(x=[1, ('a', 'b', gen2), 3], y=[3, 4]), "dict not as expected:\n\nsame:\n['y']\n\nvalues differ:\n'x': [1, ('a', 'b', {gen1}), 3] != [1, ('a', 'b', {gen2}), 3]\n\nWhile comparing ['x']: sequence not as expected:\n\nsame:\n[1]\n\nfirst:\n[('a', 'b', {gen1}), 3]\n\nsecond:\n[('a', 'b', {gen2}), 3]\n\nWhile comparing ['x'][1]: sequence not as expected:\n\nsame:\n('a', 'b')\n\nfirst:\n({gen1},)\n\nsecond:\n({gen2},)\n\nWhile comparing ['x'][1][2]: sequence not as expected:\n\nsame:\n(<obj1>,)\n\nfirst:\n(<obj2>,)\n\nsecond:\n()" .format(gen1=hexsub(repr(gen1)), gen2=hexsub(repr(gen2))))
def test_nested_labels(self): obj1 = singleton('obj1') obj2 = singleton('obj2') gen1 = generator(obj1, obj2) gen2 = generator(obj1, ) # dict -> list -> tuple -> generator self.check_raises( dict(x=[1, ('a', 'b', gen1), 3], y=[3, 4]), dict(x=[1, ('a', 'b', gen2), 3], y=[3, 4]), ( "dict not as expected:\n" "\n" "same:\n" "['y']\n" "\n" "values differ:\n" "'x': [1, ('a', 'b', {gen1}), 3] (expected) != " "[1, ('a', 'b', {gen2}), 3] (actual)\n" "\n" "While comparing ['x']: sequence not as expected:\n" "\n" "same:\n" "[1]\n" "\n" "expected:\n" "[('a', 'b', {gen1}), 3]\n" "\n" "actual:\n" "[('a', 'b', {gen2}), 3]\n" "\n" "While comparing ['x'][1]: sequence not as expected:\n" "\n" "same:\n" "('a', 'b')\n" "\n" "expected:\n" "({gen1},)\n" "\n" "actual:\n" "({gen2},)\n" "\n" "While comparing ['x'][1][2]: sequence not as expected:\n" "\n" "same:\n" "(<obj1>,)\n" "\n" "expected:\n" "(<obj2>,)\n" "\n" "actual:\n" "()" ).format(gen1=hexsub(repr(gen1)), gen2=hexsub(repr(gen2))), x_label='expected', y_label='actual', )
def test_nested_labels(self): obj1 = singleton('obj1') obj2 = singleton('obj2') gen1 = generator(obj1, obj2) gen2 = generator(obj1) self.checkRaises( dict(x=[1, ('a', 'b', gen1), 3], y=[3, 4]), dict(x=[1, ('a', 'b', gen2), 3], y=[3, 4]), "dict not as expected:\n\nsame:\n['y']\n\nvalues differ:\n'x': [1, ('a', 'b', {gen1}), 3] (expected) != [1, ('a', 'b', {gen2}), 3] (actual)\n\nWhile comparing ['x']: sequence not as expected:\n\nsame:\n[1]\n\nexpected:\n[('a', 'b', {gen1}), 3]\n\nactual:\n[('a', 'b', {gen2}), 3]\n\nWhile comparing ['x'][1]: sequence not as expected:\n\nsame:\n('a', 'b')\n\nexpected:\n({gen1},)\n\nactual:\n({gen2},)\n\nWhile comparing ['x'][1][2]: sequence not as expected:\n\nsame:\n(<obj1>,)\n\nexpected:\n(<obj2>,)\n\nactual:\n()" .format(gen1=hexsub(repr(gen1)), gen2=hexsub(repr(gen2))), x_label='expected', y_label='actual')
def test_deep_breadcrumbs(self): obj1 = singleton('obj1') obj2 = singleton('obj2') gen1 = generator(obj1, obj2) gen2 = generator(obj1, ) # dict -> list -> tuple -> generator self.check_raises( dict(x=[1, ('a', 'b', gen1), 3], y=[3, 4]), dict(x=[1, ('a', 'b', gen2), 3], y=[3, 4]), ( "dict not as expected:\n" "\n" "same:\n" "['y']\n" "\n" "values differ:\n" "'x': [1, ('a', 'b', {gen1}), 3] != [1, ('a', 'b', {gen2}), 3]" "\n\n" "While comparing ['x']: sequence not as expected:\n" "\n" "same:\n" "[1]\n" "\n" "first:\n" "[('a', 'b', {gen1}), 3]\n" "\n" "second:\n" "[('a', 'b', {gen2}), 3]\n" "\n" "While comparing ['x'][1]: sequence not as expected:\n" "\n" "same:\n" "('a', 'b')\n" "\n" "first:\n" "({gen1},)\n" "\n" "second:\n" "({gen2},)\n" "\n" "While comparing ['x'][1][2]: sequence not as expected:\n" "\n" "same:\n" "(<obj1>,)\n" "\n" "first:\n" "(<obj2>,)\n" "\n" "second:\n" "()" ).format(gen1=hexsub(repr(gen1)), gen2=hexsub(repr(gen2))) )