def test_diary_file_idempotence(mode): reset_tmp() if mode == 'ref': return None else: galerie.main('--idem . --dest tmp') return file_compare('index.md', 'tmp/index.md')
def test_sourcedir_not_found(mode): # test image source not found try: galerie.main('--gallery tmp --source foobar') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Directory not found')
def test_idempotence_no_md_file(mode): reset_tmp() try: galerie.main('--idem tmp') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('File not found')
def test_purge_thumb_1(mode): # test thumbnail purge below threshold reset_tmp() galerie.main('--gallery tmp --source . --bydate true --dates source') return generic_test( mode, True, 'test_purge_thumb_1', '--gallery tmp --source . --bydate true --dates 20000101-20000107')
def generic_test(mode, keeptmp, refdir, *options): refdir = f'reference/{refdir}' if not keeptmp: if os.path.isdir('tmp'): shutil.rmtree('tmp') os.makedirs('tmp') for option in options: galerie.main(option) thumbdir = '.thumbnails' if os.path.isdir( 'tmp/.thumbnails') else 'thumbnails' with open('tmp/files.txt', 'wt') as f: for fn in sorted(glob.glob('tmp/*.htm*')): print(os.path.basename(fn), file=f) for fn in sorted(glob.glob(f'tmp/{thumbdir}/*.jpg')): print(os.path.basename(fn), file=f) for fn in sorted(glob.glob(f'tmp/{thumbdir}/*.info')): print(os.path.basename(fn), file=f) if mode == 'ref': if os.path.isdir(refdir): shutil.rmtree(refdir) os.makedirs(refdir) shutil.copy('tmp/files.txt', refdir) for fn in glob.glob('tmp/*.htm*'): shutil.copy(fn, refdir) else: for fn in glob.glob(os.path.join(refdir, '*.*')): if file_compare(fn, os.path.join('tmp', os.path.basename(fn))) is False: return False else: return True
def test_07_gallery(mode): # test diary file not found reset_tmp() try: galerie.main('--gallery tmp --diary true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('File not found')
def test_update_incorrect_parameter(mode): # test --update with incorrect parameter reset_tmp() try: galerie.main('--update tmp --bydir true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Incorrect parameters:')
def test_16_gallery(mode): # test --update reset_tmp() galerie.main('--gallery tmp --source . --bydir true --bydate true') os.rename('OCT_20000101_000000.jpg', 'TOC_20000101_000000.jpg') try: return generic_test(mode, True, 'test_16_gallery', '--update tmp') finally: os.rename('TOC_20000101_000000.jpg', 'OCT_20000101_000000.jpg')
def test_create(mode): # test diary file creation reset_tmp() galerie.main('--create tmp --source . ') if mode == 'ref': return shutil.copyfile('tmp/index.md', 'reference/index-create-base.md') else: return file_compare('reference/index-create-base.md', 'tmp/index.md')
def test_create_date(mode): # test diary file creation with date range reset_tmp() galerie.main('--create tmp --source . --dates 20000101-20000110') if mode == 'ref': return shutil.copyfile('tmp/index.md', 'reference/index-create-dates.md') else: return file_compare('reference/index-create-dates.md', 'tmp/index.md')
def test_purge_html(mode): # test html purge (accept thumb purge and html purge above thresholds) reset_tmp() galerie.main('--gallery tmp --source . --bydir true') try: stdin = sys.stdin sys.stdin = io.StringIO('x\ny\ny') return generic_test(mode, True, 'test_purge_html', '--gallery tmp --source . --bydir false') finally: sys.stdin = stdin
def test_purge_thumb_3(mode): # test thumbnail purge above threshold and deny removing reset_tmp() galerie.main('--gallery tmp --source . --bydate true --dates source') try: stdin = sys.stdin sys.stdin = io.StringIO('x\nx\nn') return generic_test( mode, True, 'test_purge_thumb_3', '--gallery tmp --source . --bydate true --dates 20000101-20000102') finally: sys.stdin = stdin
def test_15_gallery(mode): if mode == 'ref': return None else: populate_tmp() galerie.createconfig('tmp/.config.ini') galerie.setconfig('tmp/.config.ini', 'photobox', 'time', 'abc') try: galerie.main('--gallery tmp --source subdir/deeper1 --bydir true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode( 'Missing or incorrect config value:')
def test_blogger(mode): reset_tmp() if mode == 'ref': galerie.main( '--blogger . --url blogger-medias.htm --check --dest reference/blogger-output.htm' ) return None else: galerie.main( '--blogger . --url blogger-medias.htm --check --dest tmp/blogger-output.htm' ) return file_compare('reference/blogger-output.htm', 'tmp/blogger-output.htm')
def test_diary_date_missing(mode): # test for date missing in diary reset_tmp() diary = '''\ ______ ''' with open('tmp/index.md', 'wt') as f: f.write(diary) try: galerie.main('--gallery tmp --diary true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('No date in post')
def test_diary_date_incorrect(mode): # test for incorrect date in diary reset_tmp() diary = '''\ [2020/02/30] ______ ''' with open('tmp/index.md', 'wt') as f: f.write(diary) try: galerie.main('--gallery tmp --diary true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Incorrect date value:')
def test_diary_dates_not_ordered(mode): # test for post not ordered by dates in diary reset_tmp() diary = '''\ [2020/01/02] ______ [2020/01/01] ______ ''' with open('tmp/index.md', 'wt') as f: f.write(diary) try: galerie.main('--gallery tmp --diary true') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Posts are not ordered')
def test_blogger_url_not_read(mode): try: galerie.main('--blogger . --url foobar') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Unable to read url')
def test_blogger_url_not_given(mode): try: galerie.main('--blogger .') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('No blogger url (--url)')
def test_dates_3(mode): try: galerie.main('--create tmp --dates diary') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Incorrect date format')
def test_dates_2(mode): try: galerie.main('--gallery tmp --source . --dates foobar') return False except SystemExit as exception: return exception.args[0] == galerie.errorcode('Incorrect date format')