Ejemplo n.º 1
0
    def test_main_versionOption(self):

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            sys.argv = ['cut', '--version']
            cut.main()

        self.assertTrue(
            -1 != mockStdout.getvalue().find('Written by Aldebaran Perseke'))
Ejemplo n.º 2
0
    def test_main_ignoredOption(self):

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            with patch('sys.stdin',
                       new=StringIO('abcdefghijklm\n')) as mockStdin:
                sys.argv = ['cut', '-n', '--bytes=4']
                cut.main()

        self.assertTrue('d\n' == mockStdout.getvalue())
Ejemplo n.º 3
0
    def test_main_invalidOption(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '-a', '--bytes=4']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(
            -1 != mockStderr.getvalue().find('unrecognized arguments: -a'))
Ejemplo n.º 4
0
    def test_main_charactersAndFieldsOptions(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--characters=4', '--fields=5']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'only one type of list may be specified'))
Ejemplo n.º 5
0
    def test_main_missingParameterForDelimiterOption(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--delimiter=', '--field=2']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'argument -d/--delimiter=: expected one argument'))
Ejemplo n.º 6
0
    def test_main_hifenAsFileNames(self):

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            with patch('sys.stdin',
                       new=StringIO(
                           'abcdef\nghijklm\nnopqrs\ntuvwxyz')) as mockStdin:
                sys.argv = ['cut', '--characters=2-3,6', '-']
                cut.main()

        self.assertTrue('bcf\nhil\nops\nuvy\n' == mockStdout.getvalue())
Ejemplo n.º 7
0
    def test_main_invalidParameterForDelimiterOption(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--delimiter=tab', '--field=2']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'the delimiter must be a single character'))
Ejemplo n.º 8
0
    def test_main_ignoredOptionOnly(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '-n']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'you must specify a list of bytes, characters, or fields'))
Ejemplo n.º 9
0
    def test_main_invalidParameterForFieldsOptions(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--fields=f']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'invalid byte/character position "f"'))
Ejemplo n.º 10
0
    def test_main_charactersAndOnlyDelimitedOptions(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--characters=4', '--only-delimited']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'suppressing non-delimited lines makes sense only when operating on fields'
        ))
Ejemplo n.º 11
0
    def test_main_charactersAndDelimiterOptions(self):

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            with self.assertRaises(SystemExit) as exit:
                sys.argv = ['cut', '--characters=5', '--delimiter=;']
                cut.main()

        self.assertEqual(exit.exception.code, 2)
        self.assertTrue(-1 != mockStderr.getvalue().find(
            'an input delimiter may be specified only when operating on fields'
        ))
Ejemplo n.º 12
0
    def test_main_singleFileName(self):

        contentFile = tempfile.NamedTemporaryFile(delete=False)
        contentFile.write(b'abc;def;ghi;jkl\nmno;pqr;stu;vwx;yz\n')
        contentFile.close()

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            sys.argv = [
                'cut', '--fields=1,3-4', '--delimiter=;', contentFile.name
            ]
            cut.main()

        self.assertTrue('abc;ghi;jkl\nmno;stu;vwx\n' == mockStdout.getvalue())
        os.remove(contentFile.name)
Ejemplo n.º 13
0
    def test_main_invalidFileName(self):

        #   remember, a temporary file is removed after it's closed
        invalidFile = tempfile.NamedTemporaryFile()
        invalidFileName = invalidFile.name
        invalidFile.write(b'abcdef\nghijklm\nnopqrs\ntuvwxyz')
        invalidFile.close()

        with patch('sys.stderr', new=StringIO()) as mockStderr:
            sys.argv = ['cut', '--characters=2-3,6', invalidFileName]
            cut.main()

        self.assertTrue(
            -1 != mockStderr.getvalue().find('No such file or directory'))
Ejemplo n.º 14
0
def main(memory, que):
    wow = cut.main(memory, 2)
    mymemory = wow[0]
    deep = wow[1] - 1
    root = Node("white", deep + 1, mymemory)
    lists = []
    get_var(mymemory, root, lists, deep + 1)
    while lists[0].depth != deep + 1:
        f = sorted(lists, key=key_func)
        fathers = itertools.groupby(f, key_func)
        lists = []
        for k, g in fathers:
            if k.color == "black":
                kam = list(g)
                k.score += min(f.score for f in kam)
            else:
                kam = list(g)
                k.score += max(f.score for f in kam)
            lists.append(k)
    max_score = -sys.maxsize
    res_move = []
    for e in root.kids:
        if max_score < e.score:
            max_score = e.score
            res_move = copy_matrix(e.matrix)
    xi, yi = compare(mymemory, res_move)
    que.put(xi + wow[2])
    que.put(yi + wow[3])
Ejemplo n.º 15
0
    def test_main_singleFileNameAndHifen(self):

        contentFile = tempfile.NamedTemporaryFile(delete=False)
        contentFile.write(b'abcdef\nghijkl\n')
        contentFile.close()

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            with patch('sys.stdin',
                       new=StringIO('mnopqr\nstuvwxyz\n')) as mockStdin:
                sys.argv = [
                    'cut', '--characters=1,3,5-6', contentFile.name, '-'
                ]
                cut.main()

        #   sys.stderr.write( '[debug] result: \'' + mockStdout.getvalue() + '\'\n' )
        self.assertTrue('acef\ngikl\nmoqr\nsuwx\n' == mockStdout.getvalue())
        os.remove(contentFile.name)
Ejemplo n.º 16
0
 def victory_check(self):
     pat = re.compile(r'1{5}')
     mem = cut.main(self.memory, 0)
     slices = evaluate.get_slices(mem[0])
     for sl in slices:
         for e in sl.values():
             mo = re.search(pat, e)
             if mo:
                 return True
     return False
Ejemplo n.º 17
0
    def test_main_multipleFileNames(self):

        firstContentFile = tempfile.NamedTemporaryFile(delete=False)
        firstContentFile.write(b'abcdef\nghijkl\n')
        firstContentFile.close()

        secondContentFile = tempfile.NamedTemporaryFile(delete=False)
        secondContentFile.write(b'mnopqr\nstuvwxyz\n')
        secondContentFile.close()

        with patch('sys.stdout', new=StringIO()) as mockStdout:
            sys.argv = [
                'cut', '--bytes=1,3-4', firstContentFile.name,
                secondContentFile.name
            ]
            cut.main()

        self.assertTrue('acd\ngij\nmop\nsuv\n' == mockStdout.getvalue())
        os.remove(firstContentFile.name)
        os.remove(secondContentFile.name)