示例#1
0
 def setUp(self):
     self.__backend = DrawingBackend()
示例#2
0
 def setUp(self):
     self.__backend = DrawingBackend()
示例#3
0
class TestDrawingBackend(unittest.TestCase):
    def setUp(self):
        self.__backend = DrawingBackend()

    def test_init(self):
        assert self.__backend != None

    def test_scale(self):
        assert self.__backend.scale() == DrawingBackend.DEFAULT_SCALE
        
    def test_canvas_size(self):
        assert self.__backend.canvas_size() == [None, None]
        self.__backend.set_canvas_size(40, 50) 
        assert self.__backend.canvas_size() == [40, 50], self.__backend.canvas_size()

    def test_run(self):
        background = Background((7, 3)) 
        polygon = TestUtils.generate_test_polygon(seed = 0, points = 12, radius_range = (1, 10))
        polygon_copy = copy.deepcopy(polygon)
        objects = [background, polygon, Translatable()]
        self.__backend.draw_objects = MagicMock()
        self.__backend.create_canvas = MagicMock()
        self.__backend.export_to_file = MagicMock()
        self.__backend.run(objects, "testname")
        self.__backend.draw_objects.assert_called(objects)
        self.__backend.create_canvas.assert_called(objects)
        self.__backend.export_to_file.assert_called_with("testname")
        assert TestUtils.unordered_lists_equal(self.__backend.draw_objects.call_args[0][0], objects)

    def test_draw_objects(self):
        polygon1 = TestUtils.generate_test_polygon(seed = 0, points = 12, radius_range = (1, 10))
        polygon2 = copy.deepcopy(polygon1)
        polygon2.style().set_shadow('off')
        opengraph1 = TestUtils.generate_test_opengraph(seed = 0, points = 12, radius_range = (1, 10))
        opengraph2 = copy.deepcopy(opengraph1)
        opengraph2.style().set_shadow('off')
        text = Text()
        arrow1 = RightArrow()
        arrow2 = RightArrow()
        arrow2.style().set_shadow('off')
        objects = [polygon1, polygon2, opengraph1, opengraph2, text, arrow2, arrow1]
        self.__backend.push_surface = MagicMock()
        self.__backend.pop_surface = MagicMock()
        self.__backend.draw_polygon_shadow = MagicMock()
        self.__backend.draw_polygon = MagicMock()
        self.__backend.draw_open_graph_shadow = MagicMock()
        self.__backend.draw_open_graph = MagicMock()
        self.__backend.draw_text = MagicMock()
        self.__backend.draw_text_shadow = MagicMock()
        self.__backend.translate = MagicMock()
        self.__backend.blur_surface = MagicMock()
        self.__backend.draw_objects(objects)
        assert self.__backend.push_surface.call_count == self.__backend.pop_surface.call_count
        assert self.__backend.translate.call_count == 2

        assert self.__backend.draw_polygon.call_count == 4
        self.__backend.draw_polygon.assert_any_call(polygon1)
        self.__backend.draw_polygon.assert_any_call(polygon2)
        self.__backend.draw_polygon.assert_any_call(arrow1)
        self.__backend.draw_polygon.assert_any_call(arrow2)

        assert self.__backend.draw_polygon_shadow.call_count == 2
        self.__backend.draw_polygon_shadow.assert_any_call(polygon1)
        self.__backend.draw_polygon_shadow.assert_any_call(arrow1)

        assert self.__backend.draw_open_graph.call_count == 4
        self.__backend.draw_open_graph.assert_any_call(polygon1.frame())
        self.__backend.draw_open_graph.assert_any_call(polygon2.frame())
        self.__backend.draw_open_graph.assert_any_call(opengraph1)
        self.__backend.draw_open_graph.assert_any_call(opengraph2)

        self.__backend.draw_open_graph_shadow.assert_called_once_with(opengraph1)
 
        self.__backend.draw_text.assert_called_once_with(text)

        assert self.__backend.blur_surface.call_count == 2
         
    def test_abstracts(self):
        assert_raises(NotImplementedError,  self.__backend.draw_polygon_shadow, None)
        assert_raises(NotImplementedError,  self.__backend.draw_polygon, None)
        assert_raises(NotImplementedError,  self.__backend.draw_open_graph_shadow, None)
        assert_raises(NotImplementedError,  self.__backend.draw_open_graph, None)
        assert_raises(NotImplementedError,  self.__backend.draw_text, None)
        assert_raises(NotImplementedError,  self.__backend.draw_text_shadow, None)
        assert_raises(NotImplementedError,  self.__backend.push_surface)
        assert_raises(NotImplementedError,  self.__backend.pop_surface)
        assert_raises(NotImplementedError,  self.__backend.translate, None, None)
        assert_raises(NotImplementedError,  self.__backend.blur_surface)
示例#4
0
class TestDrawingBackend(unittest.TestCase):
    def setUp(self):
        self.__backend = DrawingBackend()

    def test_init(self):
        assert self.__backend != None

    def test_scale(self):
        assert self.__backend.scale() == DrawingBackend.DEFAULT_SCALE

    def test_canvas_size(self):
        assert self.__backend.canvas_size() == [None, None]
        self.__backend.set_canvas_size(40, 50)
        assert self.__backend.canvas_size() == [
            40, 50
        ], self.__backend.canvas_size()

    def test_run(self):
        background = Background((7, 3))
        polygon = TestUtils.generate_test_polygon(seed=0,
                                                  points=12,
                                                  radius_range=(1, 10))
        polygon_copy = copy.deepcopy(polygon)
        objects = [background, polygon, Translatable()]
        self.__backend.draw_objects = MagicMock()
        self.__backend.create_canvas = MagicMock()
        self.__backend.export_to_file = MagicMock()
        self.__backend.run(objects, "testname")
        self.__backend.draw_objects.assert_called(objects)
        self.__backend.create_canvas.assert_called(objects)
        self.__backend.export_to_file.assert_called_with("testname")
        assert TestUtils.unordered_lists_equal(
            self.__backend.draw_objects.call_args[0][0], objects)

    def test_draw_objects(self):
        polygon1 = TestUtils.generate_test_polygon(seed=0,
                                                   points=12,
                                                   radius_range=(1, 10))
        polygon2 = copy.deepcopy(polygon1)
        polygon2.style().set_shadow('off')
        opengraph1 = TestUtils.generate_test_opengraph(seed=0,
                                                       points=12,
                                                       radius_range=(1, 10))
        opengraph2 = copy.deepcopy(opengraph1)
        opengraph2.style().set_shadow('off')
        text = Text()
        arrow1 = RightArrow()
        arrow2 = RightArrow()
        arrow2.style().set_shadow('off')
        objects = [
            polygon1, polygon2, opengraph1, opengraph2, text, arrow2, arrow1
        ]
        self.__backend.push_surface = MagicMock()
        self.__backend.pop_surface = MagicMock()
        self.__backend.draw_polygon_shadow = MagicMock()
        self.__backend.draw_polygon = MagicMock()
        self.__backend.draw_open_graph_shadow = MagicMock()
        self.__backend.draw_open_graph = MagicMock()
        self.__backend.draw_text = MagicMock()
        self.__backend.draw_text_shadow = MagicMock()
        self.__backend.translate = MagicMock()
        self.__backend.blur_surface = MagicMock()
        self.__backend.draw_objects(objects)
        assert self.__backend.push_surface.call_count == self.__backend.pop_surface.call_count
        assert self.__backend.translate.call_count == 2

        assert self.__backend.draw_polygon.call_count == 4
        self.__backend.draw_polygon.assert_any_call(polygon1)
        self.__backend.draw_polygon.assert_any_call(polygon2)
        self.__backend.draw_polygon.assert_any_call(arrow1)
        self.__backend.draw_polygon.assert_any_call(arrow2)

        assert self.__backend.draw_polygon_shadow.call_count == 2
        self.__backend.draw_polygon_shadow.assert_any_call(polygon1)
        self.__backend.draw_polygon_shadow.assert_any_call(arrow1)

        assert self.__backend.draw_open_graph.call_count == 4
        self.__backend.draw_open_graph.assert_any_call(polygon1.frame())
        self.__backend.draw_open_graph.assert_any_call(polygon2.frame())
        self.__backend.draw_open_graph.assert_any_call(opengraph1)
        self.__backend.draw_open_graph.assert_any_call(opengraph2)

        self.__backend.draw_open_graph_shadow.assert_called_once_with(
            opengraph1)

        self.__backend.draw_text.assert_called_once_with(text)

        assert self.__backend.blur_surface.call_count == 2

    def test_abstracts(self):
        assert_raises(NotImplementedError, self.__backend.draw_polygon_shadow,
                      None)
        assert_raises(NotImplementedError, self.__backend.draw_polygon, None)
        assert_raises(NotImplementedError,
                      self.__backend.draw_open_graph_shadow, None)
        assert_raises(NotImplementedError, self.__backend.draw_open_graph,
                      None)
        assert_raises(NotImplementedError, self.__backend.draw_text, None)
        assert_raises(NotImplementedError, self.__backend.draw_text_shadow,
                      None)
        assert_raises(NotImplementedError, self.__backend.push_surface)
        assert_raises(NotImplementedError, self.__backend.pop_surface)
        assert_raises(NotImplementedError, self.__backend.translate, None,
                      None)
        assert_raises(NotImplementedError, self.__backend.blur_surface)