コード例 #1
0
ファイル: userio_test.py プロジェクト: toeb/client
class TestUserIO(TestCase):
    def setUp(self):
        out = BiiOutputStream()
        ins = StringIO()
        self.paths = UserIO(ins, out)
        self.paths._request_while = Mock(side_effect=Exception('Boom!'))

    def test_request_boolean(self):
        self.paths.ins.write('yes')
        self.paths.ins.seek(0)
        self.assertTrue(self.paths.request_boolean('msg'))

        self.paths.ins.truncate(0)
        self.paths.ins.write('no')
        self.paths.ins.seek(0)
        self.assertFalse(self.paths.request_boolean('msg'))

        self.paths.ins.truncate(0)
        self.paths.ins.write('yds\nyes\n')
        self.paths.ins.seek(0)
        self.assertTrue(self.paths.request_boolean('msg'))

    def test_request_option(self):
        Namespace = namedtuple('Namespace',
                               ['block', 'description', 'name', 'version'])
        args = Namespace(block='dummy/dummy/geom/master',
                         description='description example',
                         name='geom2',
                         version='0')
        version = self.paths._get_option_from_args('version', args, [],
                                                   type(0), None)
        self.assertEquals(version, 0)
コード例 #2
0
ファイル: userio_test.py プロジェクト: MordodeMaru/client
class TestUserIO(TestCase):
    def setUp(self):
        out = BiiOutputStream()
        ins = StringIO()
        self.paths = UserIO(ins, out)
        self.paths._request_while = Mock(side_effect=Exception('Boom!'))

    def test_request_boolean(self):
        self.paths.ins.write('yes')
        self.paths.ins.seek(0)
        self.assertTrue(self.paths.request_boolean('msg'))

        self.paths.ins.truncate(0)
        self.paths.ins.write('no')
        self.paths.ins.seek(0)
        self.assertFalse(self.paths.request_boolean('msg'))

        self.paths.ins.truncate(0)
        self.paths.ins.write('yds\nyes\n')
        self.paths.ins.seek(0)
        self.assertTrue(self.paths.request_boolean('msg'))

    def test_request_option(self):
        Namespace = namedtuple('Namespace', ['block', 'description', 'name', 'version'])
        args = Namespace(block='dummy/dummy/geom/master', description='description example',
                         name='geom2', version='0')
        version = self.paths._get_option_from_args('version', args, [], type(0), None)
        self.assertEquals(version, 0)
コード例 #3
0
ファイル: tool_executor_test.py プロジェクト: toeb/client
    def test_tool_executor(self):
        bii = Bii(UserIO(out=BiiOutputStream()), "dummy_current_folder", "dummy_user_folder")
        toolcatalog = ToolCatalog(BiiCommand, tools=[CPPToolChain])
        toolcatalog.print_help = Mock(return_value=True)
        tool = ToolExecutor(bii, toolcatalog)
        #Effective call
        tool._call_method = Mock(return_value=True)

        # --quiet
        argv = ["cpp:configure", "--quiet"]
        tool.execute(argv)
        self.assertEqual(bii.user_io.out.level, 2)

        # --verbose
        argv = ["cpp:configure", "--verbose"]
        tool.execute(argv)
        self.assertEqual(bii.user_io.out.level, 0)

        # --version
        argv = ["--version"]
        tool.execute(argv)
        self.assertIn("%s\n" % biicode.common.__version__, str(bii.user_io.out))

        # --help
        argv = ["--help"]
        tool.execute(argv)
        toolcatalog.print_help.assert_called_with(bii.user_io.out, [])

        # Bad command
        argv = ["paspas"]
        self.assertRaises(ClientException, tool.execute, argv)
コード例 #4
0
def gnu_version(compiler):
    try:
        _, output = execute('%s --version' % compiler, ui=UserIO(out=BiiOutputStream()))
        installed_version = re.search("[0-9]\.[0-9]\.[0-9]", output).group()
    except:
        installed_version = ''
    if installed_version:
        return Version(installed_version)
コード例 #5
0
def _incompatible_avr_gcc_version_in_path():
    # Check avr-gcc in path and check version
    exit_code, output = execute("avr-gcc --version",
                                UserIO(out=BiiOutputStream(StringIO())))
    if exit_code == 0:
        for compatible_version in ARDUINO_AVR_COMPATIBLE_VERSIONS:
            if compatible_version in output:
                return False
        return True
    else:  # Not found, so its ok
        return False
コード例 #6
0
ファイル: bii.py プロジェクト: toeb/client
def create_user_io(biicode_folder):
    """Creates the bii folder and init user_io with outputstream and logfile"""
    try:
        os.makedirs(biicode_folder)
    except:
        pass

    log_file = os.path.join(biicode_folder, 'bii.log')
    if hasattr(sys.stdout, "isatty") and sys.stdout.isatty():
        from colorama import init
        init()
        OutputStream.color = True
    user_io = UserIO(sys.stdin,
                     BiiOutputStream(sys.stdout, log_file, level=INFO))
    return user_io
コード例 #7
0
def install_linux_x32_compatibility(user_io):
    if OSInfo.is_linux() and OSInfo.architecture() == Architecture("64bit"):
        cmd = "dpkg-query -S lib32z1"
        exit_code, _ = execute(cmd, UserIO(out=BiiOutputStream(StringIO())))
        if exit_code == 0:
            user_io.out.writeln(
                'x86 compatibility for 64bits already installed',
                front=Color.GREEN)
        else:
            user_io.out.writeln(
                'Installing x86 compatibility for 64bits architecture...',
                front=Color.GREEN)
            user_io.out.warn(
                'Installing lib32z1 as "sudo", enter "sudo" password if requested'
            )
            os.system('sudo apt-get install lib32z1')
コード例 #8
0
def execute(command, ui=None, cwd=None, env=None, shell=None):
    ex = {
        'Darwin': execute_mac,
        'Windows': execute_win,
        'Linux': execute_linux
    }
    if env is None:
        env = os.environ
    try:
        #TODO: Check this, the default is different in Windows and others
        if shell is None:
            if platform.system() == 'Windows':
                shell = False
            else:
                shell = True
        if ui is None:
            ui = UserIO()
        return ex[platform.system()](command, ui, cwd, env, shell)
    except KeyError:
        raise BiiException('Platform not supported')
コード例 #9
0
ファイル: userio_test.py プロジェクト: MordodeMaru/client
 def setUp(self):
     out = BiiOutputStream()
     ins = StringIO()
     self.paths = UserIO(ins, out)
     self.paths._request_while = Mock(side_effect=Exception('Boom!'))
コード例 #10
0
ファイル: userio_test.py プロジェクト: toeb/client
 def setUp(self):
     out = BiiOutputStream()
     ins = StringIO()
     self.paths = UserIO(ins, out)
     self.paths._request_while = Mock(side_effect=Exception('Boom!'))
コード例 #11
0
ファイル: user_io_mock.py プロジェクト: toeb/client
def mocked_user_io(login=None):
    user_io = UserIO(out=BiiOutputStream(StringIO.StringIO()))
    mock_user_io(user_io, login=login)
    return user_io