class TestFigureController(BaseTransactionalControllerTest):
    """ Unit tests for FigureController """


    def transactional_setup_method(self):
        """
        Sets up the environment for running the tests;
        creates a `FigureController` and an operation
        """
        self.init()
        self.figure_c = FigureController()
        self.operation = TestFactory.create_operation(test_user=self.test_user,
                                                      test_project=self.test_project)
            
            
    def transactional_teardown_method(self):
        """ Cleans the testing environment """
        self.cleanup()


    def test_displayresultfigures(self):
        """
        Tests result dictionary for the expected key/value
        """
        figure1 = TestFactory.create_figure(self.operation.id, self.test_user.id, 
                                            self.test_project.id, name="figure1", 
                                            path="path-to-figure1", session_name="test")
        figure2 = TestFactory.create_figure(self.operation.id, self.test_user.id, 
                                            self.test_project.id, name="figure2", 
                                            path="path-to-figure2", session_name="test")

        result_dict = self.figure_c.displayresultfigures()
        figures = result_dict['selected_sessions_data']['test']
        assert set([fig.id for fig in figures]) == {figure1.id, figure2.id}
        
        
    def test_editresultfigures_remove_fig(self):
        """
        Tests call to `editresultfigures` correctly redirects to '/project/figure/displayresultfigures'
        on figure removal
        """
        cherrypy.request.method = 'POST'
        figure1 = TestFactory.create_figure(self.operation.id, self.test_user.id, 
                                            self.test_project.id, name="figure1", 
                                            path="path-to-figure1", session_name="test")
        figs = dao.get_figures_for_operation(self.operation.id)
        assert len(figs) == 1
        data = {'figure_id': figure1.id}
        self._expect_redirect('/project/figure/displayresultfigures', self.figure_c.editresultfigures,
                              remove_figure=True, **data)
        figs = dao.get_figures_for_operation(self.operation.id)
        assert len(figs) == 0
        
        
    def test_editresultfigures_rename_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session renaming
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.operation.id, self.test_user.id, self.test_project.id, name="figure1",
                                  path="path-to-figure1", session_name="test")
        TestFactory.create_figure(self.operation.id, self.test_user.id, self.test_project.id, name="figure2",
                                  path="path-to-figure2", session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id, "test")  
        assert len(figs['test']) == 2
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures', self.figure_c.editresultfigures,
                              rename_session=True, **data)
        figs, previews = dao.get_previews(self.test_project.id, self.test_user.id, "test")
        assert len(figs['test']) == 0
        assert previews['test_renamed'] == 2
            
            
    def test_editresultfigures_remove_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session removal
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.operation.id, self.test_user.id, self.test_project.id, name="figure1",
                                  path="path-to-figure1", session_name="test")
        TestFactory.create_figure(self.operation.id, self.test_user.id, self.test_project.id, name="figure2",
                                  path="path-to-figure2", session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id, "test")  
        assert len(figs['test']) == 2
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures', self.figure_c.editresultfigures,
                              remove_session=True, **data)
        figs, previews = dao.get_previews(self.test_project.id, self.test_user.id, "test")
        assert len(figs['test']) == 0
        assert previews == {}
Exemplo n.º 2
0
class TestFigureController(BaseTransactionalControllerTest):
    """ Unit tests for FigureController """
    def transactional_setup_method(self):
        self.init()
        self.figure_c = FigureController()

    def transactional_teardown_method(self):
        """ Cleans the testing environment """
        self.cleanup()

    def test_displayresultfigures(self):
        """
        Tests result dictionary for the expected key/value
        """
        figure1 = TestFactory.create_figure(self.test_user.id,
                                            self.test_project.id,
                                            name="figure1",
                                            path="path-to-figure1",
                                            session_name="test")
        figure2 = TestFactory.create_figure(self.test_user.id,
                                            self.test_project.id,
                                            name="figure2",
                                            path="path-to-figure2",
                                            session_name="test")

        result_dict = self.figure_c.displayresultfigures()
        figures = result_dict['selected_sessions_data']['test']
        assert set([fig.id for fig in figures]) == {figure1.id, figure2.id}

    def test_editresultfigures_remove_fig(self):
        """
        Tests call to `editresultfigures` correctly redirects to '/project/figure/displayresultfigures'
        on figure removal
        """
        cherrypy.request.method = 'POST'
        figure1 = TestFactory.create_figure(self.test_user.id,
                                            self.test_project.id,
                                            name="figure1",
                                            path="path-to-figure1",
                                            session_name="test42")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test42")
        assert len(figs['test42']) == 1
        data = {'figure_id': figure1.id}

        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              remove_figure=True,
                              **data)

        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test42")
        assert len(figs['test42']) == 0

    def test_editresultfigures_rename_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session renaming
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.test_user.id,
                                  self.test_project.id,
                                  name="figure1",
                                  path="path-to-figure1",
                                  session_name="test")
        TestFactory.create_figure(self.test_user.id,
                                  self.test_project.id,
                                  name="figure2",
                                  path="path-to-figure2",
                                  session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test")
        assert len(figs['test']) == 2
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              rename_session=True,
                              **data)
        figs, previews = dao.get_previews(self.test_project.id,
                                          self.test_user.id, "test")
        assert len(figs['test']) == 0
        assert previews['test_renamed'] == 2

    def test_editresultfigures_remove_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session removal
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.test_user.id,
                                  self.test_project.id,
                                  name="figure1",
                                  path="path-to-figure1",
                                  session_name="test")
        TestFactory.create_figure(self.test_user.id,
                                  self.test_project.id,
                                  name="figure2",
                                  path="path-to-figure2",
                                  session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test")
        assert len(figs['test']) == 2
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              remove_session=True,
                              **data)
        figs, previews = dao.get_previews(self.test_project.id,
                                          self.test_user.id, "test")
        assert len(figs['test']) == 0
        assert previews == {}
Exemplo n.º 3
0
class FigureControllerTest(BaseTransactionalControllerTest):
    """ Unit tests for FigureController """
    def setUp(self):
        """
        Sets up the environment for running the tests;
        creates a `FigureController` and an operation
        """
        self.init()
        self.figure_c = FigureController()
        self.operation = TestFactory.create_operation(
            test_user=self.test_user, test_project=self.test_project)

    def tearDown(self):
        """ Cleans the testing environment """
        self.cleanup()

    def test_displayresultfigures(self):
        """
        Tests result dictionary for the expected key/value
        """
        figure1 = TestFactory.create_figure(self.operation.id,
                                            self.test_user.id,
                                            self.test_project.id,
                                            name="figure1",
                                            path="path-to-figure1",
                                            session_name="test")
        figure2 = TestFactory.create_figure(self.operation.id,
                                            self.test_user.id,
                                            self.test_project.id,
                                            name="figure2",
                                            path="path-to-figure2",
                                            session_name="test")

        result_dict = self.figure_c.displayresultfigures()
        figures = result_dict['selected_sessions_data']['test']
        self.assertEqual(set([fig.id for fig in figures]),
                         {figure1.id, figure2.id})

    def test_editresultfigures_remove_fig(self):
        """
        Tests call to `editresultfigures` correctly redirects to '/project/figure/displayresultfigures'
        on figure removal
        """
        cherrypy.request.method = 'POST'
        figure1 = TestFactory.create_figure(self.operation.id,
                                            self.test_user.id,
                                            self.test_project.id,
                                            name="figure1",
                                            path="path-to-figure1",
                                            session_name="test")
        figs = dao.get_figures_for_operation(self.operation.id)
        self.assertEqual(len(figs), 1)
        data = {'figure_id': figure1.id}
        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              remove_figure=True,
                              **data)
        figs = dao.get_figures_for_operation(self.operation.id)
        self.assertEqual(len(figs), 0)

    def test_editresultfigures_rename_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session renaming
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.operation.id,
                                  self.test_user.id,
                                  self.test_project.id,
                                  name="figure1",
                                  path="path-to-figure1",
                                  session_name="test")
        TestFactory.create_figure(self.operation.id,
                                  self.test_user.id,
                                  self.test_project.id,
                                  name="figure2",
                                  path="path-to-figure2",
                                  session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test")
        self.assertEqual(len(figs['test']), 2)
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              rename_session=True,
                              **data)
        figs, previews = dao.get_previews(self.test_project.id,
                                          self.test_user.id, "test")
        self.assertEqual(len(figs['test']), 0)
        self.assertEqual(previews['test_renamed'], 2)

    def test_editresultfigures_remove_session(self):
        """
        Tests result dictionary has the expected keys / values and call to `editresultfigures`
        correctly redirects to '/project/figure/displayresultfigures' on session removal
        """
        cherrypy.request.method = 'POST'
        TestFactory.create_figure(self.operation.id,
                                  self.test_user.id,
                                  self.test_project.id,
                                  name="figure1",
                                  path="path-to-figure1",
                                  session_name="test")
        TestFactory.create_figure(self.operation.id,
                                  self.test_user.id,
                                  self.test_project.id,
                                  name="figure2",
                                  path="path-to-figure2",
                                  session_name="test")
        figs, _ = dao.get_previews(self.test_project.id, self.test_user.id,
                                   "test")
        self.assertEqual(len(figs['test']), 2)
        data = {'old_session_name': 'test', 'new_session_name': 'test_renamed'}
        self._expect_redirect('/project/figure/displayresultfigures',
                              self.figure_c.editresultfigures,
                              remove_session=True,
                              **data)
        figs, previews = dao.get_previews(self.test_project.id,
                                          self.test_user.id, "test")
        self.assertEqual(len(figs['test']), 0)
        self.assertEqual(previews, {})