Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

# Copyright (C) 2009  Internet Systems Consortium. 

# 

# Permission to use, copy, modify, and distribute this software for any 

# purpose with or without fee is hereby granted, provided that the above 

# copyright notice and this permission notice appear in all copies. 

# 

# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SYSTEMS CONSORTIUM 

# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL 

# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL 

# INTERNET SYSTEMS CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, 

# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 

# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 

# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 

# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 

 

 

import unittest 

from bindctl import cmdparse 

 

class TestCmdParse(unittest.TestCase): 

 

    def test_remove_unquoted_whitespace(self): 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a"), "a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" a"), "a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a "), "a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" a "), "a") 

        self.assertNotEqual(cmdparse._remove_unquoted_whitespace("a"), "a ") 

        self.assertNotEqual(cmdparse._remove_unquoted_whitespace(" a"), " a") 

        self.assertNotEqual(cmdparse._remove_unquoted_whitespace("a "), "a ") 

        self.assertNotEqual(cmdparse._remove_unquoted_whitespace(" a "), " a ") 

        self.assertNotEqual(cmdparse._remove_unquoted_whitespace(" a "), "b") 

 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("\"abc\""), "\"abc\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" \"abc\""), "\"abc\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("\"abc\" "), "\"abc\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" \"abc\" "), "\"abc\"") 

 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("\" abc\""), "\" abc\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" \"a bc\""), "\"a bc\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("\"ab c\" "), "\"ab c\"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" \"abc \" "), "\"abc \"") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace(" \" a b c \" "), "\" a b c \"") 

 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a\" abc\"a"), "a\" abc\"a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a \"a bc\"a"), "a\"a bc\"a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a\"ab c\" a"), "a\"ab c\"a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a \"abc \" a"), "a\"abc \"a") 

        self.assertEqual(cmdparse._remove_unquoted_whitespace("a \" a b c \" a"), "a\" a b c \"a") 

 

    # short-hand function to make the set of tests more readable 

    def rws(self, a, b): 

        self.assertEqual(cmdparse._remove_list_and_map_whitespace(a), b) 

 

    def test_remove_list_whitespace(self): 

        self.rws("a", "a") 

        self.rws(" a ", " a ") 

        self.rws(" [a] ", " [a] ") 

        self.rws(" [ a] ", " [a] ") 

        self.rws(" [ a ] ", " [a] ") 

        self.rws(" [ a b c ] ", " [abc] ") 

        self.rws(" [ a \"b c\" ] ", " [a\"b c\"] ") 

        self.rws("a [ a \"b c\" ] a", "a [a\"b c\"] a") 

        self.rws("a] [ a \"b c\" ] a", "a] [a\"b c\"] a") 

        self.rws(" [ a [b c] ] ", " [a[bc]] ") 

        self.rws(" [ a b][ c d ] ", " [ab][cd] ") 

        self.rws(" [ a b] [ c d ] ", " [ab] [cd] ") 

 

        self.rws("a", "a") 

        self.rws(" a ", " a ") 

        self.rws(" {a} ", " {a} ") 

        self.rws(" { a} ", " {a} ") 

        self.rws(" { a } ", " {a} ") 

        self.rws(" { a b c } ", " {abc} ") 

        self.rws(" { a \"b c\" } ", " {a\"b c\"} ") 

        self.rws("a { a \"b c\" } a", "a {a\"b c\"} a") 

        self.rws("a} { a \"b c\" } a", "a} {a\"b c\"} a") 

        self.rws(" { a {b c} } ", " {a{bc}} ") 

        self.rws(" { a b}{ c d } ", " {ab}{cd} ") 

        self.rws(" { a b} { c d } ", " {ab} {cd} ") 

 

        self.rws(" [ a b]{ c d } ", " [ab]{cd} ") 

        self.rws(" [ a b{ c d }] ", " [ab{cd}] ") 

        self.rws(" [ a b{ \"c d\" }] ", " [ab{\"c d\"}] ") 

 

 

exitif __name__== "__main__": 

    unittest.main()