Exemplo n.º 1
0
    def test_process_uses_search_results(self):
        # Given
        ui = VixenUI()
        vixen = ui.vixen
        ui.add_project()
        p = vixen.projects[0]
        p.path = self.root
        p.scan()

        from textwrap import dedent
        code = dedent("""
        def process(relpath, media, dest):
            media.tags['completed'] = True
        """)
        p.processors = [PythonFunctionFactory(code=code, dest=self.root)]

        # When
        ui.view(p)
        ui.viewer.search = 'root.txt'
        ui.viewer.do_search()
        ui.process(p)

        # Then
        self.assertEqual(p.get('root.txt').tags['completed'], True)
        self.assertEqual(p.get('hello.py').tags['completed'], False)

        # When
        ui.viewer.clear_search()
        ui.process(p)

        # Then
        for m in p.keys():
            self.assertEqual(p.get(m).tags['completed'], True)
Exemplo n.º 2
0
def make_ui():
    # We need absolute imports here as PyInstaller does not work with
    # relative imports in the entry point script.
    from vixen.vixen import VixenUI
    ui = VixenUI()
    ui.setup_logging_handler()
    ui.vixen.load()
    return ui
Exemplo n.º 3
0
    def test_copy_project_works(self):
        # Setup

        # Create a new project, scan it, save it and re-load it for the test.
        ui = VixenUI()
        vixen = ui.vixen
        ui.add_project()

        p = vixen.projects[-1]
        p.add_tags([TagInfo(name='sometag', type='text')])
        p.path = self.root
        p.scan()
        p.save()
        vixen.save()
        self.assertEqual(len(vixen.projects), 1)

        # Given
        ui = VixenUI()
        vixen = ui.vixen
        self.assertEqual(len(vixen.projects), 1)

        # When
        ui.copy_project(vixen.projects[0])

        # Then
        self.assertEqual(len(vixen.projects), 2)
        p = vixen.projects[-1]
        self.assertEqual(p.name, 'Project1 copy')
        self.assertEqual(len(p.tags), 2)
        self.assertEqual(p.tags[0].name, 'completed')
        self.assertEqual(p.tags[0].type, 'bool')
        self.assertEqual(p.tags[1].name, 'sometag')
        self.assertEqual(p.tags[1].type, 'text')
Exemplo n.º 4
0
    def test_logging_handler_is_setup_correctly(self):
        # Given
        ui = VixenUI()

        # When
        m = mock.MagicMock()
        with mock.patch('vixen.vixen.logging.getLogger', return_value=m) as p:
            ui.setup_logging_handler()

        # Then
        p.assert_called_once_with()
        self.assertEqual(m.addHandler.call_count, 1)
        args = m.addHandler.call_args[0]
        obj = args[0]
        self.assertTrue(isinstance(obj, UIErrorHandler))
        self.assertEqual(obj.level, logging.ERROR)
        self.assertEqual(obj.ui, ui)
Exemplo n.º 5
0
 def setUp(self):
     super(TestProjectViewer, self).setUp()
     ui = VixenUI()
     p = Project(
         name='test', path=self.root,
         description='desc', extensions=['.py', '.txt']
     )
     p.scan()
     ui.vixen.projects.append(p)
     self.ui = ui
     self.p = p
Exemplo n.º 6
0
    def test_search_string_updates_search_completed(self):
        # Given
        ui = VixenUI()
        vixen = ui.vixen
        ui.add_project()
        p = vixen.projects[0]
        p.path = self.root
        p.scan()

        # When
        ui.view(p)
        self.assertEqual(ui.viewer.active_pager, ui.viewer.pager)
        ui.viewer.search = 'root.txt'

        # Then
        self.assertEqual(ui.viewer.search_completed, False)
        self.assertEqual(ui.viewer.active_pager, ui.viewer.search_pager)

        # When
        ui.viewer.do_search()

        # Then
        self.assertEqual(ui.viewer.search_completed, True)

        # When
        ui.viewer.search = 'xxx'

        # Then
        self.assertEqual(ui.viewer.search_completed, False)
Exemplo n.º 7
0
    def test_messages(self):
        # Given.
        ui = VixenUI()

        # When
        ui.error('ERROR')

        # Then
        self.assertEqual(ui.message, ('ERROR', 'error', 0))

        # When
        ui.info('INFO')

        # Then
        self.assertEqual(ui.message, ('INFO', 'info', 1))

        # When
        ui.success('SUCCESS')

        # Then
        self.assertEqual(ui.message, ('SUCCESS', 'success', 2))
Exemplo n.º 8
0
    def test_vixen_ui_log(self, logger):
        # Given
        ui = VixenUI()

        # When
        ui.log('msg', 'info')

        # Then
        logger.info.assert_called_with('msg')

        # When
        ui.log('err', 'error')

        # Then
        logger.error.assert_called_with('err')

        # When
        ui.log('err', 'blah')

        # Then
        logger.error.assert_called_with('Unknown message kind: %s', 'blah')
        logger.info.assert_called_with('err')
Exemplo n.º 9
0
    def test_viewer_rescan(self):
        # Given
        ui = VixenUI()
        vixen = ui.vixen
        ui.add_project()
        p = vixen.projects[0]
        p.path = self.root
        p.scan()
        viewer = ui.viewer
        ui.view(p)

        # When
        viewer.rescan()

        # Then
        self.assertEqual(viewer.current_dir, p.root)
Exemplo n.º 10
0
    def test_add_remove_project_works(self):
        # Given
        ui = VixenUI()
        vixen = ui.vixen
        self.assertEqual(len(vixen.projects), 1)

        # When
        ui.add_project()

        # Then
        self.assertEqual(len(vixen.projects), 1)
        p = vixen.projects[-1]
        self.assertEqual(p.name, 'Project1')
        self.assertEqual(
            vixen.save_file, os.path.join(self._temp, 'projects.json')
        )

        # When
        ui.remove(p)

        # Then
        self.assertEqual(len(vixen.projects), 0)
Exemplo n.º 11
0
    def test_miscellaneous(self):
        # Given/When
        ui = VixenUI()

        # Then
        self.assertEqual(ui.version, vixen.__version__)
        fname = ui.docs
        self.assertTrue(
            os.path.basename(fname) in ['index.html', 'vixen.readthedocs.io']
        )

        # When
        ui.mode = 'view'
        ui.home()

        # Then
        self.assertEqual(ui.mode, 'edit')

        # When
        ctx = ui.get_context()

        # Then
        self.assertEqual(sorted(ctx.keys()),
                         ['editor', 'ui', 'viewer', 'vixen'])