| #!/usr/bin/env python |
| # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| |
| """Unittest for ini_editor.py.""" |
| |
| |
| import logging |
| import os |
| import re |
| import tempfile |
| import unittest |
| |
| from ini_editor import Ini |
| |
| SAMPLE_INI="""\ |
| [output_source] |
| library=builtin |
| label=source |
| purpose=playback |
| disable=(equal? output_jack "HDMI") |
| output_0={src:0} |
| output_1={src:1} |
| |
| [output_sink] |
| library=builtin |
| label=sink |
| purpose=playback |
| disable=(equal? output_jack "HDMI") |
| input_0={dst:0} |
| input_1={dst:1} |
| |
| [drc] |
| library=builtin |
| label=drc |
| input_0={src:0} |
| input_1={src:1} |
| output_2={intermediate:0} |
| output_3={intermediate:1} |
| input_4=0 ; f |
| input_5=0 ; enable |
| input_6=-29 ; threshold |
| input_7=3 ; knee |
| input_8=6.677 ; ratio |
| input_9=0.02 ; attack |
| input_10=0.2 ; release |
| input_11=-7 ; boost |
| |
| [eq2] |
| library=builtin |
| label=eq2 |
| input_0={intermediate:0} |
| input_1={intermediate:1} |
| output_2={dst:0} |
| output_3={dst:1} |
| input_4=6 ; peaking |
| input_5=380 ; freq |
| input_6=3 ; Q |
| input_7=-10 ; gain |
| input_8=6 ; peaking |
| input_9=450 ; freq |
| input_10=3 ; Q |
| input_11=-12 ; gain |
| """ |
| |
| SAMPLE_INI_DRC="""\ |
| [drc] |
| library=builtin |
| label=drc |
| input_0={src:0} |
| input_1={src:1} |
| output_2={intermediate:0} |
| output_3={intermediate:1} |
| input_4=0 ; f |
| input_5=0 ; enable |
| input_6=-29 ; threshold |
| input_7=3 ; knee |
| input_8=6.677 ; ratio |
| input_9=0.02 ; attack |
| input_10=0.2 ; release |
| input_11=-7 ; boost |
| |
| """ |
| |
| SAMPLE_INI_DRC_INSERTED="""\ |
| [drc] |
| library=builtin |
| label=drc |
| input_0={src:0} |
| input_1={src:1} |
| output_2={intermediate:0} |
| output_3={intermediate:1} |
| input_4=1 ; new_parameter |
| input_5=0 ; f |
| input_6=0 ; enable |
| input_7=-29 ; threshold |
| input_8=3 ; knee |
| input_9=6.677 ; ratio |
| input_10=0.02 ; attack |
| input_11=0.2 ; release |
| input_12=-7 ; boost |
| |
| """ |
| |
| |
| class IniTest(unittest.TestCase): |
| """Unittest for Ini class.""" |
| def setUp(self): |
| self.ini_file = tempfile.NamedTemporaryFile(prefix='ini_editor_unittest') |
| with open(self.ini_file.name, 'w') as f: |
| f.write(SAMPLE_INI) |
| self.ini = Ini(self.ini_file.name) |
| |
| def tearDown(self): |
| self.ini_file.close() |
| |
| def testPrint(self): |
| """Unittest for Print method of Ini class.""" |
| output = self.ini.Print() |
| self.assertEqual(output.getvalue(), SAMPLE_INI) |
| |
| def testHasSection(self): |
| """Unittest for HasSection method of Ini class.""" |
| self.assertTrue(self.ini.HasSection('drc')) |
| self.assertFalse(self.ini.HasSection('eq1')) |
| |
| def testPrintSection(self): |
| """Unittest for PrintSection method of Ini class.""" |
| output = self.ini.PrintSection('drc') |
| self.assertEqual(output.getvalue(), SAMPLE_INI_DRC) |
| |
| def testInsertLineToSection(self): |
| """Unittest for InsertLineToSection method of Ini class.""" |
| self.ini.InsertLineToSection('drc', 'input_4=1 ; new_parameter') |
| output = self.ini.PrintSection('drc') |
| self.assertEqual(output.getvalue(), SAMPLE_INI_DRC_INSERTED) |
| |
| |
| if __name__ == '__main__': |
| logging.basicConfig( |
| format='%(asctime)s:%(levelname)s:%(filename)s:%(lineno)d:%(message)s', |
| level=logging.DEBUG) |
| unittest.main() |