Ejemplo n.º 1
0
 def setUp(self):
     self.shard_visitor = ShardingVisitor(Mock(create=lambda x:Mock()))
Ejemplo n.º 2
0
class FunctionTesting(unittest.TestCase):
    def setUp(self):
        self.shard_visitor = ShardingVisitor(Mock(create=lambda x:Mock()))

    def test_empty_output(self):
        self.assertEqual(self.shard_visitor.pretty_print(), "")

    def test_empty_data(self):
        self.assertEqual(self.shard_visitor.get_stat_data(), [])

    def test_comparable_key(self):
        self.assertEqual(self.shard_visitor._comparable_key('042'), 42)
        self.assertEqual(self.shard_visitor._comparable_key('abc'), 'abc')
        self.assertEqual(self.shard_visitor._comparable_key((1, 2)), (1, 2))
        self.shard_visitor.comparable_key = Mock(return_value=42)
        self.assertEqual(self.shard_visitor._comparable_key('anything'), 42)
        self.shard_visitor.comparable_key = Mock(side_effect=Exception)
        self.assertEqual(self.shard_visitor._comparable_key('42'), '42')

    def test_enum_visitors(self):
        self.shard_visitor.visitors['10'] = 1
        self.shard_visitor.visitors['2'] = 2
        self.assertEqual(list(self.shard_visitor._enum_visitors()), [('2', 2), ('10', 1)])
        self.shard_visitor.visitors['a'] = 3
        self.assertEqual(list(self.shard_visitor._enum_visitors()), [('10', 1), ('2', 2), ('a', 3)])

    def test_one_visitors(self):
        self.shard_visitor.visit(10)
        self.shard_visitor.visitors['10'].visit.assert_called_once_with(10)

    def test_two_visitors(self):
        for i in range(2):
            self.shard_visitor.visit(10)
        self.shard_visitor.visit(20)
        self.shard_visitor.visitors['10'].visit.assert_called_with(10)
        self.shard_visitor.visitors['20'].visit.assert_called_once_with(20)

    def test_raw_stats(self):
        self.shard_visitor.visitors['1'] = Mock(get_stat_data=Mock(return_value=1))
        self.shard_visitor.visitors['2'] = Mock(get_stat_data=Mock(return_value=2))
        self.assertEqual(self.shard_visitor.get_stat_data(), [('1', 1), ('2', 2)])

    def test_pretty_key(self):
        self.assertEqual(self.shard_visitor.pretty_key(5), '5')
        self.shard_visitor.visit(10)

    def test_pretty_print(self):
        self.shard_visitor.visitors['10'] = Mock(pretty_print=Mock(return_value='A'))
        self.shard_visitor.visitors['b'] = Mock(pretty_print=Mock(return_value=''))
        self.shard_visitor.visitors['c'] = Mock(pretty_print=Mock(return_value=None))
        self.shard_visitor.visitors['2'] = Mock(pretty_print=Mock(return_value='D'))
        self.assertEqual(self.shard_visitor.pretty_print(), '\n10:\n\tA\n2:\n\tD')