Exemple #1
0
 def testCanParseCommandAbsorbsEveryThing(self):
     scanner = Scanner("w !dostuff here")
     tokens = list(scanner.scan())
     params = {
         '++': '',
         'file_name': '',
         '>>': False,
         'cmd': 'dostuff here'
     }
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #2
0
 def testCanScanDotOffsetSearchForward(self):
     scanner = Scanner(".+10/foobar/")
     tokens = list(scanner.scan())
     self.assertEqual([
         TokenDot(),
         TokenOffset([10]),
         TokenSearchForward('foobar'),
         TokenEof()
     ], tokens)
     self.assertEqual(12, scanner.state.position)
    def testCanParsePlusPlusFileencoding(self):
        scanner = Scanner("w ++fileencoding")
        tokens = list(scanner.scan())
        params = {'++': 'fileencoding', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++enc")
        tokens = list(scanner.scan())
        params = {'++': 'fileencoding', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
    def testCanParsePlusPlusNobin(self):
        scanner = Scanner("w ++nobinary")
        tokens = list(scanner.scan())
        params = {'++': 'nobinary', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++nobin")
        tokens = list(scanner.scan())
        params = {'++': 'nobinary', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #5
0
 def testCanScanSubstituteParamatersWithCount(self):
     scanner = Scanner("substitute:foo:bar: 10")
     tokens = list(scanner.scan())
     params = {
         "search_term": "foo",
         "replacement": "bar",
         "flags": [],
         "count": 10
     }
     self.assertEqual([TokenCommandSubstitute(params), TokenEof()], tokens)
    def testCanParsePlusPlusEdit(self):
        scanner = Scanner("w ++edit")
        tokens = list(scanner.scan())
        params = {'++': 'edit', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++fileformat")
        tokens = list(scanner.scan())
        params = {'++': 'fileformat', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #7
0
    def testCanParsePlusPlusEdit(self):
        scanner = Scanner("w ++edit")
        tokens = list(scanner.scan())
        params = {'++': 'edit', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++fileformat")
        tokens = list(scanner.scan())
        params = {'++': 'fileformat', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #8
0
    def testCanParsePlusPlusNobin(self):
        scanner = Scanner("w ++nobinary")
        tokens = list(scanner.scan())
        params = {'++': 'nobinary', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++nobin")
        tokens = list(scanner.scan())
        params = {'++': 'nobinary', 'file_name': '', '>>': False, 'cmd': ''}
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #9
0
    def testCanParsePlusPlusFileencoding(self):
        scanner = Scanner("w ++fileencoding")
        tokens = list(scanner.scan())
        params = {
            '++': 'fileencoding',
            'file_name': '',
            '>>': False,
            'cmd': ''
        }
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)

        scanner = Scanner("w ++enc")
        tokens = list(scanner.scan())
        params = {
            '++': 'fileencoding',
            'file_name': '',
            '>>': False,
            'cmd': ''
        }
        self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #10
0
 def testCanScanEmptyRange(self):
     scanner = Scanner("s")
     tokens = list(scanner.scan())
     self.assertEqual([TokenCommandSubstitute(None), TokenEof()], tokens)
     self.assertEqual(1, scanner.state.position)
Exemple #11
0
 def testCanScanNegativeOffset(self):
     scanner = Scanner(".-100")
     tokens = list(scanner.scan())
     self.assertEqual([TokenDot(), TokenOffset([-100]), TokenEof()], tokens)
Exemple #12
0
 def testCanScanBackwardSearch(self):
     scanner = Scanner("?foo?")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSearchBackward('foo'), TokenEof()], tokens)
Exemple #13
0
 def testCanScanOffsetWithTrailingChars(self):
     scanner = Scanner("+100,")
     tokens = list(scanner.scan())
     self.assertEqual([TokenOffset(
         [100]), TokenComma(), TokenEof()], tokens)
Exemple #14
0
 def testCanInstantiateAlias(self):
     scanner = Scanner("w")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': '', '>>': False, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #15
0
 def testCanParseRedirectionFollowedByFilenameSeparated(self):
     scanner = Scanner("w>> foo.txt")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': 'foo.txt', '>>': True, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #16
0
 def testCanInstantiate(self):
     scanner = Scanner("foo")
     self.assertEqual(scanner.state.source, 'foo')
Exemple #17
0
 def testCanInstantiate(self):
     scanner = Scanner("'a")
     tokens = list(scanner.scan())
     self.assertEqual([TokenMark('a'), TokenEof()], tokens)
Exemple #18
0
 def testCanScanDollar(self):
     scanner = Scanner(";")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSemicolon(), TokenEof()], tokens)
Exemple #19
0
 def testCanScanForwardSearch(self):
     scanner = Scanner("/foo/")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSearchForward('foo'), TokenEof()], tokens)
Exemple #20
0
 def testCanScanDollar(self):
     scanner = Scanner(",")
     tokens = list(scanner.scan())
     self.assertEqual([TokenComma(), TokenEof()], tokens)
Exemple #21
0
 def testCanParseCommandAndDetectFileName(self):
     scanner = Scanner("w foo.txt")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': 'foo.txt', '>>': False, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #22
0
 def testCanParseCommandAbsorbsEveryThing(self):
     scanner = Scanner("w !dostuff here")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': '', '>>': False, 'cmd': 'dostuff here'}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #23
0
 def testCanScanSubstituteParamatersWithFlags(self):
     scanner = Scanner("substitute:foo:bar:r")
     tokens = list(scanner.scan())
     params = {"search_term": "foo", "replacement": "bar", "flags": ['r'], "count": 1}
     self.assertEqual([TokenCommandSubstitute(params), TokenEof()], tokens)
Exemple #24
0
 def testCanInstantiateAlias(self):
     scanner = Scanner("w")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': '', '>>': False, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #25
0
 def testScanCanFailIfSubstituteParamatersFlagsHaveWrongOrder(self):
     scanner = Scanner("substitute:foo:bar:r&")
     self.assertRaises(ValueError, lambda: list(scanner.scan()))
Exemple #26
0
 def testCanParseRedirectionFollowedByFilenameSeparated(self):
     scanner = Scanner("w>> foo.txt")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': 'foo.txt', '>>': True, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #27
0
 def testCanInstantiate(self):
     scanner = Scanner("'a")
     tokens = list(scanner.scan())
     self.assertEqual([TokenMark('a'), TokenEof()], tokens)
Exemple #28
0
 def testCanScanSubstituteParamaterWithRange(self):
     scanner = Scanner(r'%substitute:foo:bar: 10')
     tokens = list(scanner.scan())
     params = {"search_term": "foo", "replacement": "bar", "flags": [], "count": 10}
     self.assertEqual([TokenPercent(), TokenCommandSubstitute(params), TokenEof()], tokens)
Exemple #29
0
 def testCanScanBackwardSearch(self):
     scanner = Scanner("?foo?")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSearchBackward('foo'), TokenEof()], tokens)
Exemple #30
0
 def testCanParseRedirection(self):
     scanner = Scanner("w>>")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': '', '>>': True, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #31
0
 def testCanScanOffset(self):
     scanner = Scanner("+100")
     tokens = list(scanner.scan())
     self.assertEqual([TokenOffset([100]), TokenEof()], tokens)
Exemple #32
0
 def testCanParseCommandAndDetectFileName(self):
     scanner = Scanner("w foo.txt")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': 'foo.txt', '>>': False, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #33
0
 def testCanParseRedirection(self):
     scanner = Scanner("w>>")
     tokens = list(scanner.scan())
     params = {'++': '', 'file_name': '', '>>': True, 'cmd': ''}
     self.assertEqual([TokenCommandWrite(params), TokenEof()], tokens)
Exemple #34
0
 def testCanScanDollar(self):
     scanner = Scanner(";")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSemicolon(), TokenEof()], tokens)
Exemple #35
0
 def testCanScanOffsetWithTrailingChars(self):
     scanner = Scanner("+100,")
     tokens = list(scanner.scan())
     self.assertEqual([TokenOffset([100]), TokenComma(), TokenEof()], tokens)
Exemple #36
0
 def testScanCanFailIfSubstituteParamatersFlagsHaveWrongOrder(self):
     scanner = Scanner("substitute:foo:bar:r&")
     self.assertRaises(ValueError, lambda: list(scanner.scan()))
Exemple #37
0
 def testCanScanDollar(self):
     scanner = Scanner(",")
     tokens = list(scanner.scan())
     self.assertEqual([TokenComma(), TokenEof()], tokens)
Exemple #38
0
 def testCanScanPercent(self):
     scanner = Scanner("%")
     tokens = list(scanner.scan())
     self.assertEqual([TokenPercent(), TokenEof()], tokens)
Exemple #39
0
 def testCanScanForwardSearch(self):
     scanner = Scanner("/foo/")
     tokens = list(scanner.scan())
     self.assertEqual([TokenSearchForward('foo'), TokenEof()], tokens)
Exemple #40
0
 def testCanScanEmptyRange(self):
     scanner = Scanner("s")
     tokens = list(scanner.scan())
     self.assertEqual([TokenCommandSubstitute(None), TokenEof()], tokens)
     self.assertEqual(1, scanner.state.position)
Exemple #41
0
 def testCanScanOffset(self):
     scanner = Scanner("+100")
     tokens = list(scanner.scan())
     self.assertEqual([TokenOffset([100]), TokenEof()], tokens)
Exemple #42
0
 def testCanScanDotOffsetSearchForward(self):
     scanner = Scanner(".+10/foobar/")
     tokens = list(scanner.scan())
     self.assertEqual([TokenDot(), TokenOffset([10]), TokenSearchForward('foobar'), TokenEof()], tokens)
     self.assertEqual(12, scanner.state.position)
Exemple #43
0
 def testCanScanPercent(self):
     scanner = Scanner("%")
     tokens = list(scanner.scan())
     self.assertEqual([TokenPercent(), TokenEof()], tokens)
Exemple #44
0
 def testCanScanNegativeOffset(self):
     scanner = Scanner(".-100")
     tokens = list(scanner.scan())
     self.assertEqual([TokenDot(), TokenOffset([-100]), TokenEof()], tokens)
Exemple #45
0
 def testCanScanDigitsDot(self):
     scanner = Scanner("100.")
     tokens = list(scanner.scan())
     self.assertEqual([TokenDigits('100'), TokenDot(), TokenEof()], tokens)
Exemple #46
0
 def testCanInstantiate(self):
     scanner = Scanner("substitute")
     tokens = list(scanner.scan())
     self.assertEqual([TokenCommandSubstitute(params=None),
                       TokenEof()], tokens)
Exemple #47
0
 def testCanScanDigits(self):
     scanner = Scanner("100")
     tokens = list(scanner.scan())
     self.assertEqual([TokenDigits('100'), TokenEof()], tokens)
Exemple #48
0
 def testCanInstantiate(self):
     scanner = Scanner("substitute")
     tokens = list(scanner.scan())
     self.assertEqual([TokenCommandSubstitute(params=None), TokenEof()], tokens)