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)
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))
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)
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)
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
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)
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
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)
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)
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
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)
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))