예제 #1
0
    def test_should_raise_error_if_folder_does_not_exist(self):
        tmp = tempfile.gettempdir()
        folder = os.path.join(tmp, 'does_not_exist')

        with self.assertRaisesRegexp(OSError,
                                     '\[Errno 2\] No such file or directory'):
            folder_is_empty(folder)
예제 #2
0
    def test_should_ignore_empty_list_for_font_declarations(self):
        self.fontcache.clear()
        self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))

        def empty_font_declarations():
            return []
        self.fontcache.get_used_font_declarations = empty_font_declarations

        self.fontcache.update()
        self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))
예제 #3
0
    def test_should_delete_files_and_folders_and_files_withing_sub_folders(
            self):
        # declare file paths
        tmp = tempfile.gettempdir()
        base = os.path.join(tmp, 'base_folder')
        filename = os.path.join(base, 'test.txt')
        subfolder = os.path.join(base, 'sub_folder')
        sub_file = os.path.join(subfolder, 'subtest.txt')

        # create file structure
        os.mkdir(base)
        os.mkdir(subfolder)
        file_put_contents(filename, 'Foo')
        file_put_contents(sub_file, 'Bar')

        try:
            # delete content of folder
            folder_delete_content(base)

            # folder should still exist
            self.assertTrue(os.path.isdir(base))

            # ...but folder should be empty
            self.assertTrue(folder_is_empty(base))
        finally:
            if os.path.isdir(base):
                shutil.rmtree(base)
예제 #4
0
 def test_should_remove_font_cache_folder_content_if_not_empty(self):
     path = os.path.join(settings.CUBANE_FONT_ROOT, 'test')
     os.mkdir(path)
     try:
         self.fontcache.clear()
         self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))
     finally:
         if os.path.isdir(path):
             os.rmdir(path)
예제 #5
0
    def test_should_not_create_font_folder_if_download_failed(self):
        resources = testapp.RESOURCES
        try:
            # 100 does not exist
            testapp.RESOURCES = ['font|Open Sans:100']

            # clear cache first
            self.fontcache.clear()
            self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))

            # update cache system
            self.fontcache.update()

            # folder should still be empty, since we could not download
            # any assets...
            self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))
        finally:
            testapp.RESOURCES = resources
예제 #6
0
    def test_should_return_true_if_folder_is_empty(self):
        tmp = tempfile.gettempdir()
        folder = os.path.join(tmp, 'empty_folder')
        os.mkdir(folder)

        try:
            self.assertTrue(folder_is_empty(folder))
        finally:
            os.rmdir(folder)
예제 #7
0
    def test_should_load_fonts(self):
        resources = testapp.RESOURCES
        try:
            # 100 does not exist, the font system should ignore it
            testapp.RESOURCES = [
                'font|Open Sans:300'
            ]

            # clear cache first
            call_command('clearfonts')
            self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))

            # call load fonts command
            call_command('loadfonts', refresh=True)

            # folder should contain data
            self.assertFalse(folder_is_empty(settings.CUBANE_FONT_ROOT))
        finally:
            testapp.RESOURCES = resources
예제 #8
0
    def test_should_return_false_if_folder_contains_sub_folders(self):
        tmp = tempfile.gettempdir()
        folder = os.path.join(tmp, 'not_empty_folder')
        sub_folder = os.path.join(folder, 'sub_folder')
        os.mkdir(folder)
        os.mkdir(sub_folder)

        try:
            self.assertFalse(folder_is_empty(folder))
        finally:
            shutil.rmtree(folder)
예제 #9
0
    def test_should_return_false_if_folder_contains_files(self):
        tmp = tempfile.gettempdir()
        folder = os.path.join(tmp, 'not_empty_folder')
        filename = os.path.join(folder, 'test.txt')
        os.mkdir(folder)
        file_put_contents(filename, 'Foo')

        try:
            self.assertFalse(folder_is_empty(folder))
        finally:
            shutil.rmtree(folder)
예제 #10
0
    def test_should_download_fonts(self):
        resources = testapp.RESOURCES
        try:
            # 100 does not exist, the font system should ignore it
            testapp.RESOURCES = [
                'font|Open Sans:100,300,300i,400,400i'
            ]

            # clear cache first
            self.fontcache.clear()
            self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))

            # remove main font cache folder, the system should automatically
            # re-create such folder when updating the font cache
            if os.path.isdir(settings.CUBANE_FONT_ROOT):
                os.rmdir(settings.CUBANE_FONT_ROOT)

            # update cache system
            self.fontcache.update()

            # folder should contain data
            self.assertFalse(folder_is_empty(settings.CUBANE_FONT_ROOT))

            # folder should contain fonts used, but only those that actually
            # exist
            fontbase = os.path.join(settings.CUBANE_FONT_ROOT, 'open-sans')
            version = 'v17'
            self.assertTrue(os.path.isdir(fontbase))
            for weight in ['300', '400']:
                for style in ['normal', 'italic']:
                    for typ in ['woff2', 'woff']:
                        filename = 'open-sans-%s-%s-%s.%s' % (
                            version,
                            weight,
                            style,
                            typ
                        )
                        path = os.path.join(fontbase, filename)
                        self.assertTrue(os.path.isfile(path), 'expected font file: %s. File does not exist.' % filename)
        finally:
            testapp.RESOURCES = resources
예제 #11
0
    def test_should_clear_font_cache_folder(self):
        # create test folder within font cache root path
        path = os.path.join(settings.CUBANE_FONT_ROOT, 'test')
        ensure_dir(path)
        try:
            # call clear command
            call_command('clearfonts')

            # font cache folder should be empty
            self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))
        finally:
            if os.path.isdir(path):
                os.rmdir(path)
예제 #12
0
 def test_should_leave_font_cache_folder_empty_if_already_empty(self):
     self.fontcache.clear()
     self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))
     self.fontcache.clear()
     self.assertTrue(folder_is_empty(settings.CUBANE_FONT_ROOT))