示例#1
0
    def test_process_directory_triggers_pre_composition(self, signals):
        config = Configuration()
        site = self.factory.make_site()
        director = Director(config, site, [])
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        directory = os.path.join(site.path, 'directory')
        os.mkdir(directory)

        director.process_directory(directory)

        signals.pre_composition.send.assert_called_once_with(director)
示例#2
0
    def test_file_in_source_and_outdir_is_ignored(self):
        """A source file is ignored when the source dir is in the outdir."""
        config = Configuration()
        config.outdir = tempfile.mkdtemp()
        site_path = os.path.join(config.outdir, 'site')
        site = Site(site_path)
        director = Director(config, site, [])
        fake_file = os.path.join(site_path, 'fake')

        is_in_output = director.is_in_output(fake_file)

        self.assertFalse(is_in_output)
示例#3
0
    def test_process_directory_triggers_pre_composition(self, signals):
        config = Configuration()
        site = self.factory.make_site()
        director = Director(config, site, [])
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        directory = os.path.join(site.path, 'directory')
        os.mkdir(directory)

        director.process_directory(directory)

        signals.pre_composition.send.assert_called_once_with(director)
示例#4
0
    def test_generates_with_user_specified_outdir(self):
        config = Configuration()
        config.outdir = tempfile.mkdtemp()
        site = self.factory.make_site()
        marker = 'marker.txt'
        open(os.path.join(site.path, marker), 'w').close()
        director = Director(config, site)

        director.produce()

        out_marker = os.path.join(config.outdir, marker)
        self.assertTrue(os.path.exists(out_marker))
示例#5
0
    def test_generates_with_user_specified_outdir(self):
        config = Configuration()
        config.outdir = tempfile.mkdtemp()
        site = self.factory.make_site()
        marker = 'marker.txt'
        open(os.path.join(site.path, marker), 'w').close()
        director = Director(config, site, [])

        director.produce()

        out_marker = os.path.join(config.outdir, marker)
        self.assertTrue(os.path.exists(out_marker))
示例#6
0
    def test_file_in_source_and_outdir_is_ignored(self):
        """A source file is ignored when the source dir is in the outdir."""
        config = Configuration()
        config.outdir = tempfile.mkdtemp()
        site_path = os.path.join(config.outdir, 'site')
        site = Site(site_path)
        director = Director(config, site, [])
        fake_file = os.path.join(site_path, 'fake')

        is_in_output = director.is_in_output(fake_file)

        self.assertFalse(is_in_output)
示例#7
0
    def test_does_timing(self):
        mock_time = mock.Mock()
        mock_time.return_value = 42.0  # Return float so that format works.
        site = self.factory.make_site()
        open(os.path.join(site.path, 'fake.md'), 'w').close()
        config = Configuration()
        config.timing = True
        director = Director(config, site, [])

        with mock.patch('handroll.director.time.time', mock_time):
            director.produce()

        self.assertTrue(mock_time.called)
示例#8
0
    def test_process_file_ignores_templates(self):
        config = Configuration()
        site = self.factory.make_site()
        default = os.path.join(site.path, 'template.html')
        open(default, 'w').close()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        director = Director(config, site, [])

        director.process_file(default)

        default_output = os.path.join(config.outdir, 'template.html')
        self.assertFalse(os.path.exists(default_output))
示例#9
0
    def test_process_file_ignores_templates(self):
        config = Configuration()
        site = self.factory.make_site()
        default = os.path.join(site.path, 'template.html')
        open(default, 'w').close()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        director = Director(config, site, [])

        director.process_file(default)

        default_output = os.path.join(config.outdir, 'template.html')
        self.assertFalse(os.path.exists(default_output))
示例#10
0
    def test_does_timing(self):
        mock_time = mock.Mock()
        mock_time.return_value = 42.0  # Return float so that format works.
        site = self.factory.make_site()
        open(os.path.join(site.path, 'fake.md'), 'w').close()
        config = Configuration()
        config.timing = True
        director = Director(config, site)

        with mock.patch('handroll.director.time.time', mock_time):
            director.produce()

        self.assertTrue(mock_time.called)
示例#11
0
    def test_process_directory_ignores_templates(self):
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        director = Director(config, site, [])
        directory = os.path.join(director.catalog.templates_path, 'test')
        os.makedirs(directory)

        director.process_directory(directory)

        directory_output = os.path.join(config.outdir,
                                        director.catalog.TEMPLATES_DIR, 'test')
        self.assertFalse(os.path.exists(directory_output))
示例#12
0
    def test_process_directory_ignores_templates(self):
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        director = Director(config, site, [])
        directory = os.path.join(director.catalog.templates_path, 'test')
        os.makedirs(directory)

        director.process_directory(directory)

        directory_output = os.path.join(
            config.outdir, director.catalog.TEMPLATES_DIR, 'test')
        self.assertFalse(os.path.exists(directory_output))
示例#13
0
    def test_process_directory_ignores_directories_already_in_output(self):
        # Avoid processing directories in output for the same reason that
        # file processing is skipped.
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        directory = os.path.join(config.outdir, 'directory')
        os.mkdir(directory)
        director = Director(config, site, [])

        director.process_directory(directory)

        directory_output = os.path.join(config.outdir, 'outdir', 'directory')
        self.assertFalse(os.path.exists(directory_output))
示例#14
0
    def test_process_directory_ignores_directories_already_in_output(self):
        # Avoid processing directories in output for the same reason that
        # file processing is skipped.
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        directory = os.path.join(config.outdir, 'directory')
        os.mkdir(directory)
        director = Director(config, site, [])

        director.process_directory(directory)

        directory_output = os.path.join(config.outdir, 'outdir', 'directory')
        self.assertFalse(os.path.exists(directory_output))
示例#15
0
    def test_produce_triggers_pre_composition(self, signals):
        config = Configuration()
        site = self.factory.make_site()
        director = Director(config, site, [])

        director.produce()

        signals.pre_composition.send.assert_called_once_with(director)
示例#16
0
    def test_process_file_ignores_files_already_in_output(self):
        # This condition is checked because the output directory can be within
        # the source (e.g., the default of storing results in 'output'). If
        # the watcher is watching for any changes in site source, then
        # processing files in the output directory could lead the watcher into
        # an infinite loop.
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        marker = os.path.join(config.outdir, 'marker.md')
        open(marker, 'w').close()
        director = Director(config, site, [])

        director.process_file(marker)

        marker_output = os.path.join(config.outdir, 'marker.html')
        self.assertFalse(os.path.exists(marker_output))
示例#17
0
    def test_process_file_ignores_files_already_in_output(self):
        # This condition is checked because the output directory can be within
        # the source (e.g., the default of storing results in 'output'). If
        # the watcher is watching for any changes in site source, then
        # processing files in the output directory could lead the watcher into
        # an infinite loop.
        config = Configuration()
        site = self.factory.make_site()
        config.outdir = os.path.join(site.path, 'outdir')
        os.mkdir(config.outdir)
        marker = os.path.join(config.outdir, 'marker.md')
        open(marker, 'w').close()
        director = Director(config, site, [])

        director.process_file(marker)

        marker_output = os.path.join(config.outdir, 'marker.html')
        self.assertFalse(os.path.exists(marker_output))
示例#18
0
    def test_gets_active_extensions(self):
        config = Configuration()
        config.active_extensions.add('blog')
        loader = ExtensionLoader()
        loader.load()

        extensions = loader.get_active_extensions(config)

        self.assertEqual(1, len(extensions))
        self.assertTrue(isinstance(extensions[0], BlogExtension))
示例#19
0
    def test_process_file_triggers_pre_composition(self, signals):
        config = Configuration()
        site = self.factory.make_site()
        director = Director(config, site, [])
        marker = os.path.join(site.path, 'marker.txt')
        open(marker, 'w').close()

        director.process_file(marker)

        signals.pre_composition.send.assert_called_once_with(director)
示例#20
0
    def test_skips_file_with_skip_extension(self):
        config = Configuration()
        site = self.factory.make_site()
        skip = 'to_my_lou.swp'
        open(os.path.join(site.path, skip), 'w').close()
        director = Director(config, site, [])

        director.produce()

        out_skip = os.path.join(site.output_root, skip)
        self.assertFalse(os.path.exists(out_skip))
示例#21
0
    def test_skips_file_in_skip_list(self):
        config = Configuration()
        site = self.factory.make_site()
        skip = Site.CONFIG
        open(os.path.join(site.path, skip), 'w').close()
        director = Director(config, site, [])

        director.produce()

        out_skip = os.path.join(site.output_root, skip)
        self.assertFalse(os.path.exists(out_skip))
示例#22
0
    def test_skips_templates_directory(self):
        config = Configuration()
        site = self.factory.make_site()
        templates = os.path.join(site.path, 'templates')
        os.mkdir(templates)
        director = Director(config, site, [])

        director.produce()

        out_templates = os.path.join(site.output_root, 'templates')
        self.assertFalse(os.path.exists(out_templates))
示例#23
0
    def test_generates_output_directory(self):
        config = Configuration()
        site = self.factory.make_site()
        another = os.path.join(site.path, 'another')
        os.mkdir(another)
        director = Director(config, site, [])

        director.produce()

        another_out = os.path.join(site.output_root, 'another')
        self.assertTrue(os.path.isdir(another_out))
示例#24
0
 def setUp(self):
     config = Configuration()
     config.outdir = tempfile.mkdtemp()
     self.site = self.factory.make_site()
     self.director = Director(config, self.site, [])
示例#25
0
 def setUp(self):
     config = Configuration()
     config.outdir = tempfile.mkdtemp()
     self.site = self.factory.make_site()
     self.director = Director(config, self.site, [])
示例#26
0
 def make_configuration(self):
     config = Configuration()
     config._domain = 'http://www.example.com'
     return config