Exemplo n.º 1
0
 def setUp(self):
     logging.basicConfig(level=100)
     self.path = './test/test_RoboRooter/fixtures-ManifestLoader'
     self.loader = ManifestLoader(
         {
             'sources_path': self.path,
             'minimum_version': 1,
             'default_version': 1
         }
     )
Exemplo n.º 2
0
class test_ManifestLoader(unittest.TestCase):
    def setUp(self):
        logging.basicConfig(level=100)
        self.path = './test/test_RoboRooter/fixtures-ManifestLoader'
        self.loader = ManifestLoader(
            {
                'sources_path': self.path,
                'minimum_version': 1,
                'default_version': 1
            }
        )

    def test_get_manifest_versions(self):
        self.assertEqual(
            self.loader.get_manifest_versions(),
            [1, 2, 123232434234]
        )

    def test_get_manifest_by_version_invalid_returns_None(self):
        manifest = self.loader.get_manifest_by_version('abc123')
        self.assertEqual(manifest, None)

    def test_get_manifest_by_version_valid_returns_Manifest(self):
        manifest = self.loader.get_manifest_by_version(1)
        self.assertIsInstance(manifest, Manifest)

    def test_get_manifest_by_version_manifest_has_version(self):
        manifest = self.loader.get_manifest_by_version(1)
        self.assertEqual(manifest.version, 1)

    def test_get_manifest_by_version_manifest_has_path(self):
        manifest = self.loader.get_manifest_by_version(1)
        self.assertEqual(manifest.path, '%s/1' % self.path)

    def test_add_component_with_none_fails(self):
        with self.assertRaises(ValueError):
            self.loader.add_component(None)

    def test_add_component_with_component_accepts(self):
        self.assertEqual(
            self.loader.add_component(True),
            True
        )

    def test_manifest_loading_polutes_previously_loaded_manifests(self):
        self.loader.add_component(Whitelist)
        manifest1 = self.loader.get_manifest_by_version(1)
        startingRules = copy.copy(manifest1.components[0].rules)

        # Loading another manifest tends to trigger this bug
        self.loader.get_manifest_by_version(2)
        currentRules = manifest1.components[0].rules
        self.assertEqual(startingRules, currentRules)
Exemplo n.º 3
0
from RoboRooter.Component.DeviceFile import DeviceFile
from RoboRooter.Component.Content import Content
from RoboRooter.Component.Whitelist import Whitelist
from RoboRooter.Component.Symlink import Symlink
from RoboRooter.Component.RoboVersioning import RoboVersioning
import logging

cli = CommandLine()
(options, args) = cli.parse()
LoggerConfiguration().configureByOptions(options)

config = ConfigLoader(options.config)
if options.minimum_version and int(options.minimum_version):
    config.override('minimum_version', options.minimum_version)

manifest_loader = ManifestLoader(config.get_config())
manifest_loader.add_component(Content)
manifest_loader.add_component(DeviceFile)
manifest_loader.add_component(Symlink)
manifest_loader.add_component(Permission)
manifest_loader.add_component(Owner)
manifest_loader.add_component(Whitelist)
manifest_loader.add_component(RoboVersioning)


def roboroot_against_path(path):
    logger = logging.getLogger(__name__)
    manifest = manifest_loader.get_manifest_for_path(path)

    if manifest is None:
        logger.critical('No manifest found for %s', path)