Esempio n. 1
0
 def testNonBlockSingleValue__add_option(self):
     """ SettingParser.add_option: adding non-block option, single value
         provided.
         """
     self.parser = parser.SettingParser()
     self.parser.add_option(None, 'option_name', 'value1')
     self.assertEqual(self.parser._ast[1], [['option_name', ['value1']]])
Esempio n. 2
0
 def testBlockNotExistNoValue__add_option(self):
     """ SettingParser.add_option: adding option for for non-existing
         block.
         """
     self.parser = parser.SettingParser()
     with self.assertRaises(ValueError):
         self.parser.add_option('block_name', 'option_name')
Esempio n. 3
0
 def testNonBlockNoValue__add_option(self):
     """ SettingParser.add_option: adding non-block option, no value
         provided.
         """
     self.parser = parser.SettingParser()
     with self.assertRaises(ValueError):
         self.parser.add_option(None, 'option_name')
Esempio n. 4
0
 def testBlockNotExist__remove_option(self):
     """ SettingParser.remove_option: removing option from non-existent
         block.
         """
     self.parser = parser.SettingParser()
     with self.assertRaises(ValueError):
         self.parser.remove_option('non_exist', 'option_name')
Esempio n. 5
0
 def setUp(self):
     super(TestSettingParser, self).setUp()
     self.setup_dir()
     self.stream = StringIO(_TEST_DATA)
     self.parser = parser.SettingParser()
     self.parser._lexer = parser.SettingLexer()
     self.parser._lexer.readstream(self.stream)
Esempio n. 6
0
    def testNonBlockOptionExist__remove_option(self):
        """ SettingParser.remove_option: removing option.
            """
        self.parser = parser.SettingParser()

        self.parser._ast = self._get_nonblock_options('opt')
        self.parser.remove_option(None, 'opt')
        self.assertEqual(self.parser._ast[1], [])
Esempio n. 7
0
    def test__filename(self):
        """ SettingParser.filename (property): returns correct values.
            """
        self.parser = parser.SettingParser()
        self.assertIsNone(self.parser.filename)  # not set

        self.parser._filename = 'test'
        self.assertEqual(self.parser.filename, 'test')
Esempio n. 8
0
    def testNotExist__add_block(self):
        """ SettingParser.add_block: adding block that doesn't exist.
            """
        self.parser = parser.SettingParser()
        self.parser.add_block('test')

        ast, _ = self._get_block('test')
        self.assertEqual(self.parser._ast[2], ast[2])
Esempio n. 9
0
 def testExist__add_block(self):
     """ SettingParser.add_block: adding block that already exists.
         """
     self.parser = parser.SettingParser()
     res = self._get_block('test')
     self.parser._ast, self.parser._block_map = res
     with self.assertRaises(ValueError):
         self.parser.add_block('test')
Esempio n. 10
0
    def test__header(self):
        """ SettingParser.header (property): returns correct values.
            """
        # not set
        self.parser = parser.SettingParser()
        self.assertIsNone(self.parser.header)

        self.parser._ast = ['test', [], []]
        self.assertEqual(self.parser.header, 'test')
Esempio n. 11
0
    def test__options(self):
        """ SettingParser.options (property): returns correct values.
            """
        # not set
        self.parser = parser.SettingParser()
        self.assertEqual([], list(self.parser.options))  # empty generator

        self.parser._ast = self._get_nonblock_options('opt_test')
        self.assertEqual(list(self.parser.options), self.parser._ast[1])
Esempio n. 12
0
    def testBlockExistOptionNotExist__remove_option(self):
        """ SettingParser.remove_option: removing non-existent option from an
            existing block.
            """
        self.parser = parser.SettingParser()

        res = self._get_block_options('test', 'opt')
        self.parser._ast, self.parser._block_map = res
        with self.assertRaises(ValueError):
            self.parser.remove_option('test', 'non_exist')
Esempio n. 13
0
    def testBlockExistOptionExist__remove_option(self):
        """ SettingParser.remove_option: removing option from an existing
            block.
            """
        self.parser = parser.SettingParser()

        res = self._get_block_options('test', 'opt')
        self.parser._ast, self.parser._block_map = res
        self.parser.remove_option('test', 'opt')
        self.assertEqual(self.parser._ast[2], [['test', []]])
Esempio n. 14
0
    def test__blocks(self):
        """ SettingParser.blocks (property): returns correct values.
            """
        # not set
        self.parser = parser.SettingParser()
        self.assertEqual([], list(self.parser.blocks))  # empty generator

        res = self._get_block_options('test', 'opt')
        self.parser._ast, self.parser._block_map = res
        self.assertEqual(list(self.parser.blocks), self.parser._ast[2])
Esempio n. 15
0
    def testBlockExistNoValue__add_option(self):
        """ SettingParser.add_option: adding option to existing block, no
            value provided.
            """
        self.parser = parser.SettingParser()

        res = self._get_block_options('test', 'opt')
        self.parser._ast, self.parser._block_map = res
        with self.assertRaises(ValueError):
            self.parser.add_option('test', 'opt')
Esempio n. 16
0
    def test__write(self):
        """ SettingParser.write: writes to file.
            """
        new_stream = StringIO(_TEST_DATA)
        self.parser = parser.SettingParser()
        self.parser.readstream(new_stream)

        filename = self.make_file()
        self.assertTrue(self.parser.write(filename, 'header_value'))
        self.assertTrue(self.parser._filename, filename)
        self.assertEqual(open(filename, 'r').read(), _TEST_DATA)
Esempio n. 17
0
    def testNonBlockOptionNotExist__remove_option(self):
        """ SettingParser.remove_option: removing non-existent option.
            """
        self.parser = parser.SettingParser()
        self.parser._ast = self._get_nonblock_options()
        with self.assertRaises(ValueError):
            self.parser.remove_option(None, 'non_exist')

        self.parser._ast = self._get_nonblock_options('test')
        with self.assertRaises(ValueError):
            self.parser.remove_option(None, 'non_exist')
Esempio n. 18
0
    def test__writestream(self):
        """ SettingParser.writestream: writes to stream.
            """
        new_stream = StringIO(_TEST_DATA)
        self.parser = parser.SettingParser()
        self.parser.readstream(new_stream)

        filename = self.make_file()
        with open(filename, 'w', 0) as f:
            self.assertTrue(self.parser.writestream(f, 'header_value'))
        self.assertEqual(open(filename, 'r').read(), _TEST_DATA)
Esempio n. 19
0
    def test__readstream(self):
        """ SettingParser.readstream: read data from stream, parses correctly.
            """
        new_stream = StringIO(_TEST_DATA)
        self.parser = parser.SettingParser()
        self.parser.readstream(new_stream)

        self.assertEqual(self.parser._ast[0], 'header_value')
        self.assertEqual(self.parser._ast[1],
            [['option', ['12345']]])
        self.assertEqual(self.parser._ast[2],
            [['block_name', [['option', ['name']], ['option', ['name 2']]]]])
Esempio n. 20
0
    def testExist__remove_block(self):
        """ SettingParser.remove_block: removing existing block.
            """
        self.parser = parser.SettingParser()

        # existing block with options, then existing block no options
        args = [('test', 'opt1'), ('test',)]
        for arg in args:
            res = self._get_block_options(*arg)
            self.parser._ast, self.parser._block_map = res
            self.parser.remove_block('test')
            self.assertEqual(self.parser._ast[2], [])
Esempio n. 21
0
 def testNonBlockMultiValue__add_option(self):
     """ SettingParser.add_option: adding non-block option, multiple values
         provided.
         """
     self.parser = parser.SettingParser()
     self.parser.add_option(None, 'option_name', 'value1')
     self.parser.add_option(None, 'option_name', 'value1')
     self.parser.add_option(None, 'other_opt_name', 'value2')
     self.assertEqual(self.parser._ast[1], [
         ['option_name', ['value1']],
         ['option_name', ['value1']],
         ['other_opt_name', ['value2']]
     ])
Esempio n. 22
0
    def testBlockExistSingleValue__add_option(self):
        """ SettingParser.add_option: adding option to existing block, single
            value provided.
            """
        self.parser = parser.SettingParser()
        res = self._get_block('test')
        self.parser._ast, self.parser._block_map = res

        self.parser.add_option('test', 'option_name', 'value1')
        self.assertEqual(self.parser._ast[2], [
            ['test', [
                ['option_name', ['value1']]
            ]]
        ])
Esempio n. 23
0
    def testReadFileBlockNotExist__remove_option(self):
        """ SettingParser.remove_option: removing option from existent
            block after reading from file.
            """
        filename = self.make_file()
        with open(filename, 'w', 0) as f:
            f.write(_TEST_DATA)

        self.parser = parser.SettingParser(filename)
        self.parser.remove_option('block_name', 'option')
        self.parser.remove_option('block_name', 'option')

        with self.assertRaises(ValueError):
            self.parser.remove_option('block_name', 'option')
Esempio n. 24
0
    def testDupeBlock___rule_container(self):
        """ SettingParser._rule_container: parses container rule with
            duplicate blocks and dedupes them.
            """

        self.stream = StringIO(_TEST_DUPEBLK_DATA)
        self.parser = parser.SettingParser()
        self.parser._lexer = parser.SettingLexer()
        self.parser._lexer.readstream(self.stream)

        self.assertEqual(self.parser._rule_container(),
            ['header_value',
             [['option', ['12345']]],
             [['block_name', [['option', ['name 3']]]],
              ['block_name2', [['option', ['name 5']]]],
              ['block_name3', [['option', ['name 6']]]]]
            ]
        )
Esempio n. 25
0
    def _save_active_file(self):
        """ Saves current task information to active file.

            Example format::
                active_task {
                    name "task name";
                    start_time "2012-04-23 15:18:22";
                }
            """

        _parser = parser.SettingParser()

        # add name
        _parser.add_option(None, 'name', common.to_utf8(self._name))

        # add start time
        start_time = self._start_time.strftime('%Y-%m-%d %H:%M:%S.%f')
        _parser.add_option(None, 'start_time', start_time)

        # write it to file
        return _parser.write(self._paths['active_file'],
                             self.HEADER_ACTIVE_FILE)
Esempio n. 26
0
 def testNotExist__remove_block(self):
     """ SettingParser.remove_block: removing non-existent block.
         """
     self.parser = parser.SettingParser()
     with self.assertRaises(ValueError):
         self.parser.remove_block('non_exist')