Ejemplo n.º 1
0
def make_gallery(source_dir='dir1', **kwargs):
    default_conf = os.path.join(SAMPLE_DIR, 'sigal.conf.py')
    settings = read_settings(default_conf)
    settings['source'] = os.path.join(SAMPLE_SOURCE, source_dir)
    settings.update(kwargs)
    init_plugins(settings)
    return Gallery(settings, ncpu=1)
Ejemplo n.º 2
0
def test_encrypt(settings, tmpdir, disconnect_signals):
    settings['destination'] = str(tmpdir)
    if "sigal.plugins.encrypt" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.encrypt"]

    settings['encrypt_options'] = {
        'password': '******',
        'ask_password': True,
        'gcm_tag': 'AuTheNTiCatIoNtAG',
        'kdf_salt': 'saltysaltsweetysweet',
        'kdf_iters': 10000,
        'encrypt_symlinked_originals': False,
    }

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    # check the encrypt cache exists
    cachePath = os.path.join(settings["destination"], ".encryptCache")
    assert os.path.isfile(cachePath)

    encryptCache = None
    with open(cachePath, "rb") as cacheFile:
        encryptCache = pickle.load(cacheFile)
    assert isinstance(encryptCache, dict)

    testAlbum = gal.albums["encryptTest"]
    key, tag = get_key_tag(settings)

    for media in testAlbum:
        # check if sizes are stored in cache
        assert cache_key(media) in encryptCache
        assert "size" in encryptCache[cache_key(media)]
        assert "thumb_size" in encryptCache[cache_key(media)]
        assert "encrypted" in encryptCache[cache_key(media)]

        encryptedImages = [media.dst_path, media.thumb_path]
        if settings["keep_orig"]:
            encryptedImages.append(
                os.path.join(settings["destination"], media.path, media.big))

        # check if images are encrypted by trying to decrypt
        for image in encryptedImages:
            with open(image, "rb") as infile:
                with BytesIO() as outfile:
                    endec.decrypt(key, infile, outfile, tag)

    # check static files have been copied
    static = os.path.join(settings["destination"], 'static')
    assert os.path.isfile(os.path.join(static, "decrypt.js"))
    assert os.path.isfile(os.path.join(static, "keycheck.txt"))
    assert os.path.isfile(os.path.join(settings["destination"], "sw.js"))

    # check keycheck file
    with open(os.path.join(settings["destination"], 'static', "keycheck.txt"),
              "rb") as infile:
        with BytesIO() as outfile:
            endec.decrypt(key, infile, outfile, tag)
Ejemplo n.º 3
0
def test_titleregexp(settings, tmpdir, disconnect_signals):

    if "sigal.plugins.titleregexp" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.titleregexp"]

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    assert gal.albums.get('dir1').albums[1].title == "titleregexp 02"
Ejemplo n.º 4
0
def make_gallery(settings, tmpdir, method):
    settings['destination'] = str(tmpdir)
    if "sigal.plugins.compress_assets" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.compress_assets"]

    # Set method
    settings.setdefault('compress_assets_options', {})['method'] = method

    compress_options = compress_assets.DEFAULT_SETTINGS.copy()
    # The key was created by the previous setdefault if needed
    compress_options.update(settings['compress_assets_options'])

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    return compress_options
Ejemplo n.º 5
0
def test_nonmedia_files(settings, tmpdir, disconnect_signals):

    settings['destination'] = str(tmpdir)
    settings['plugins'] += ['sigal.plugins.nonmedia_files']

    init_plugins(settings)

    gal = Gallery(settings)
    gal.build()

    outfile = os.path.join(settings['destination'], 'nonmedia_files', 'dummy.pdf')
    assert os.path.isfile(outfile)

    outthumb = os.path.join(
        settings['destination'], 'nonmedia_files', 'thumbnails', 'dummy.tn.jpg'
    )
    assert os.path.isfile(outthumb)
Ejemplo n.º 6
0
def test_nomedia_plugin(settings, tmpdir):

    settings['destination'] = str(tmpdir)
    if "plugins"in settings:
        if not "sigal.plugins.nomedia" in settings["plugins"]:
            settings['plugins'] += ["sigal.plugins.nomedia"]
    else:
        settings["plugins"] = ["sigal.plugins.nomedia"]

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    for path, dirs, files in os.walk(os.path.join(str(tmpdir), "nomedia")):
        assert "ignore" not in path

        for file in files:
            assert "ignore" not in file
Ejemplo n.º 7
0
def test_nomedia_plugin(settings, tmpdir):

    settings['destination'] = str(tmpdir)
    if "plugins" in settings:
        if not "sigal.plugins.nomedia" in settings["plugins"]:
            settings['plugins'] += ["sigal.plugins.nomedia"]
    else:
        settings["plugins"] = ["sigal.plugins.nomedia"]

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    for path, dirs, files in os.walk(os.path.join(str(tmpdir), "nomedia")):
        assert "ignore" not in path

        for file in files:
            assert "ignore" not in file
Ejemplo n.º 8
0
def make_gallery(settings, tmpdir, method):
    settings['destination'] = str(tmpdir)
    # Really speed up testing
    settings['use_orig'] = True
    if "sigal.plugins.compress_assets" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.compress_assets"]

    # Set method
    settings.setdefault('compress_assets_options', {})['method'] = method

    compress_options = compress_assets.DEFAULT_SETTINGS.copy()
    # The key was created by the previous setdefault if needed
    compress_options.update(settings['compress_assets_options'])

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    return compress_options
Ejemplo n.º 9
0
def test_plugins(settings, tmpdir, disconnect_signals):

    settings['destination'] = str(tmpdir)
    if "sigal.plugins.nomedia" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.nomedia"]
    if "sigal.plugins.media_page" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.media_page"]

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    out_html = os.path.join(settings['destination'],
                            'dir2', 'KeckObservatory20071020.jpg.html')
    assert os.path.isfile(out_html)

    for path, dirs, files in os.walk(os.path.join(str(tmpdir), "nomedia")):
        assert "ignore" not in path

        for file in files:
            assert "ignore" not in file
Ejemplo n.º 10
0
def test_plugins(settings, tmpdir, disconnect_signals):

    settings['destination'] = str(tmpdir)
    if "sigal.plugins.nomedia" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.nomedia"]
    if "sigal.plugins.media_page" not in settings["plugins"]:
        settings['plugins'] += ["sigal.plugins.media_page"]

    init_plugins(settings)
    gal = Gallery(settings)
    gal.build()

    out_html = os.path.join(settings['destination'],
                            'dir2', 'KeckObservatory20071020.jpg.html')
    assert os.path.isfile(out_html)

    for path, dirs, files in os.walk(os.path.join(str(tmpdir), "nomedia")):
        assert "ignore" not in path

        for file in files:
            assert "ignore" not in file