Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/testing/mozbase/mozprofile/tests/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  addon_stubs.py   Sprache: Python

 
#!/usr/bin/env python

import os
import tempfile
import zipfile

import mozfile

here = os.path.dirname(os.path.abspath(__file__))

# stubs is a dict of the form {'addon id': 'install manifest content'}
stubs = {
    "test-addon-1@mozilla.org""test_addon_1.rdf",
    "test-addon-2@mozilla.org""test_addon_2.rdf",
    "test-addon-3@mozilla.org""test_addon_3.rdf",
    "test-addon-4@mozilla.org""test_addon_4.rdf",
    "test-addon-invalid-no-id@mozilla.org""test_addon_invalid_no_id.rdf",
    "test-addon-invalid-version@mozilla.org""test_addon_invalid_version.rdf",
    "test-addon-invalid-no-manifest@mozilla.org"None,
    "test-addon-invalid-not-wellformed@mozilla.org""test_addon_invalid_not_wellformed.rdf",
    "test-addon-unpack@mozilla.org""test_addon_unpack.rdf",
}


def generate_addon(addon_id, path=None, name=None, xpi=True):
    """
    Method to generate a single addon.

    :param addon_id: id of an addon to generate from the stubs dictionary
    :param path: path where addon and .xpi should be generated
    :param name: name for the addon folder or .xpi file
    :param xpi: Flag if an XPI or folder should be generated

    Returns the file-path of the addon's .xpi file
    """

    if addon_id not in stubs:
        raise IOError('Requested addon stub "%s" does not exist' % addon_id)

    # Generate directory structure for addon
    try:
        tmpdir = path or tempfile.mkdtemp()
        addon_dir = os.path.join(tmpdir, name or addon_id)
        os.mkdir(addon_dir)
    except IOError:
        raise IOError("Could not generate directory structure for addon stub.")

    # Write install.rdf for addon
    if stubs[addon_id]:
        install_rdf = os.path.join(addon_dir, "install.rdf")
        with open(install_rdf, "w"as f:
            manifest = os.path.join(here, "install_manifests", stubs[addon_id])
            f.write(open(manifest, "r").read())

    if not xpi:
        return addon_dir

    # Generate the .xpi for the addon
    xpi_file = os.path.join(tmpdir, (name or addon_id) + ".xpi")
    with zipfile.ZipFile(xpi_file, "w"as x:
        x.write(install_rdf, install_rdf[len(addon_dir) :])

    # Ensure we remove the temporary folder to not install the addon twice
    mozfile.rmtree(addon_dir)

    return xpi_file

Messung V0.5
C=90 H=98 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.