예제 #1
0
    def virtual_test(self):
        references = References()
        references[va].add('a.h')

        code = (
            'def virtual(settings):\n\tif(settings.os.family == "windows"):return "win"\n'
            '\telse: return "nix"')
        a = Resource(VirtualCell('user/blocka/a.h', code, {'win', 'nix'}))

        awin = Resource(SimpleCell('user/blocka/win/a.h'))
        anix = Resource(SimpleCell('user/blocka/nix/a.h'))
        b = Resource(SimpleCell('user/blockb/b.h'))
        d1 = Resource(SimpleCell('user/blockd/d.h'))
        awin.cell.dependencies.explicit.add(b.name)
        anix.cell.dependencies.explicit.add(d1.name)

        tables = {va: [vb, vd1], vb: [], vd1: []}
        api = FakeApi(zip([va, va, va, vb, vd1], [a, awin, anix, b, d1]),
                      tables)

        #With windows settings
        settings = Settings(OSInfo(OSFamily("Windows")))
        biiout = OutputStream()
        graph, closure, _ = build_closure(api, references, {}, settings,
                                          biiout)
        expected_graph = BlockVersionGraph()
        expected_graph.add_nodes([va, vb])
        expected_graph.add_edge(va, vb)
        self.assertEqual(expected_graph, graph)
        expected_closure = Closure({
            a.name: ClosureItem(a, va),
            awin.name: ClosureItem(awin, va),
            b.name: ClosureItem(b, vb),
        })
        self.assertEqual(expected_closure, closure)
        self.assertEqual("", str(biiout))

        #Change settings
        settings = Settings(OSInfo(OSFamily("Linux")))
        biiout = OutputStream()
        graph, closure, _ = build_closure(api, references, {}, settings,
                                          biiout)
        expected_graph = BlockVersionGraph()
        expected_graph.add_nodes([va, vd1])
        expected_graph.add_edge(va, vd1)
        self.assertEqual(expected_graph, graph)
        expected_closure = Closure({
            a.name: ClosureItem(a, va),
            anix.name: ClosureItem(anix, va),
            d1.name: ClosureItem(d1, vd1),
        })
        self.assertEqual(expected_closure, closure)
        self.assertEqual("", str(biiout))
예제 #2
0
    def _sphere_os_checks(self, name):
        vsphere = self.block_holder[name].cell
        self.assertTrue(isinstance(vsphere, VirtualCell), '%s is not a VirtualCell' % vsphere.name)
        self.assertEqual(set(['win', 'nix']), vsphere.leaves)
        self.assertEqual(set(['user/block/win/%s' % name, 'user/block/nix/%s' % name]),
                         set(vsphere.resource_leaves))

        settings = Settings(OSInfo('linux'))
        self.assertEqual('user/block/nix/%s' % name, vsphere.evaluate(settings))

        settings = Settings(OSInfo('windows'))
        self.assertEqual('user/block/win/%s' % name, vsphere.evaluate(settings))

        winsphere = self.block_holder['win/%s' % name].cell
        self.assertTrue(isinstance(winsphere, SimpleCell))
        nixsphere = self.block_holder['nix/%s' % name].cell
        self.assertTrue(isinstance(nixsphere, SimpleCell))
예제 #3
0
 def test_no_ide(self):
     settings = Settings()
     user_io = mocked_user_io()
     mock_user_io(user_io, {
         'username': '******',
         'IP Address': '127.1.2.3',
         'directory': 'mydir'
     })
     rpi_settings_wizard(user_io, settings)
     self.assertEqual(settings.rpi.directory, 'mydir')
     self.assertEqual(settings.rpi.ip, '127.1.2.3')
     self.assertEqual(settings.rpi.user, 'piuser')
예제 #4
0
    def check_virtual_options(self, name, vsphere):
        self.assertEqual(set(['test', 'develop']), vsphere.leaves)
        self.assertEqual(
            set([
                'dummy/virtual/test/%s' % name,
                'dummy/virtual/develop/%s' % name
            ]), set(vsphere.resource_leaves))
        settings = Settings()
        settings.user['test'] = False
        self.assertEqual('dummy/virtual/develop/%s' % name,
                         vsphere.evaluate(settings))

        settings.user['test'] = True
        self.assertEqual('dummy/virtual/test/%s' % name,
                         vsphere.evaluate(settings))
예제 #5
0
 def settings(self):
     """ Return Hive settings.
     If settings.bii not present, creates and initialize a default hive settings.bii
     """
     if self._settings is None:
         settings_path = self._bii_paths.settings
         if not os.path.exists(
                 settings_path):  # CREATE new hive settings file
             settings = Settings()  # empty settings, only OS information
             save(settings_path, settings.dumps())  # save settings.bii
             self._settings = settings
         else:  # LOAD existing settings.bii file
             try:
                 self._settings = Settings.loads(load(settings_path))
             except Exception as e:
                 raise ClientException(
                     '%s\nIn file %s' %
                     (str(e), settings_path.replace('\\', '/')))
     return self._settings
예제 #6
0
 def testBasic(self):
     s = Settings()
     s.os.family = OSFamily('Linux')
     self.assertEqual('user/module/path/to/nix/file.h', self.r.evaluate(s))
     s.os.family = OSFamily('Windows')
     self.assertEqual('user/module/path/to/win/file.h', self.r.evaluate(s))