[asterisk-commits] gtjoseph: testsuite/asterisk/trunk r5721 - in /asterisk/trunk/tests/manager: ...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Oct 13 11:21:13 CDT 2014


Author: gtjoseph
Date: Mon Oct 13 11:21:09 2014
New Revision: 5721

URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=5721
Log:
Testsuite: Tests for manager GetConfig and UpdateConfig AMI actions

This is the test for manager GetConfig and UpdateConfig corresponding
to https://reviewboard.asterisk.org/r/4033/

Tested-by: George Joseph

Review: https://reviewboard.asterisk.org/r/4072/

Added:
    asterisk/trunk/tests/manager/config/
    asterisk/trunk/tests/manager/config/ManagerConfigTest.py   (with props)
    asterisk/trunk/tests/manager/config/test-config.yaml   (with props)
Modified:
    asterisk/trunk/tests/manager/tests.yaml

Added: asterisk/trunk/tests/manager/config/ManagerConfigTest.py
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/config/ManagerConfigTest.py?view=auto&rev=5721
==============================================================================
--- asterisk/trunk/tests/manager/config/ManagerConfigTest.py (added)
+++ asterisk/trunk/tests/manager/config/ManagerConfigTest.py Mon Oct 13 11:21:09 2014
@@ -1,0 +1,67 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2014, Fairview 5 Engineering, LLC
+George Joseph <george.joseph at fairview5.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+'''
+
+import sys
+import os
+import logging
+
+sys.path.append("lib/python")
+
+from test_case import TestCase
+from syncami import SyncAMI
+
+LOGGER = logging.getLogger(__name__)
+
+class ManagerConfigTest(TestCase):
+    def __init__(self, path=None, config=None):
+        super(ManagerConfigTest, self).__init__(path, config)
+        self.create_asterisk()
+        self.config = config
+
+    def run(self):
+        super(ManagerConfigTest, self).run()
+        self.passed = True
+
+        try:
+            self.syncami = SyncAMI()
+            for x in self.config.get('ami-config'):
+                self.run_test(x)
+                if (not self.passed):
+                    break
+        except Exception as e:
+            self.passed = False
+            LOGGER.error("Exception caught: %s" % e)
+            raise
+        finally:
+            self.stop_reactor()
+
+    def run_test(self, test):
+        message = test.get('message')
+        res = self.syncami.send(message)
+        self.process_response(test, res, message)
+
+    def process_response(self, test, actual, message):
+        expected = test.get('expected')
+
+        if actual.get('Response') != expected.get('Response'):
+            LOGGER.error("Request failed...\nMessage: %s\n\nExpected: %s\n\nActual: %s" % (message, expected, actual.items()))
+            self.passed = False
+            return
+
+        for name, evalue in expected.items():
+            if name == 'Payload':
+                avalue = actual.get_payload().strip()
+            else:
+                avalue = actual.get(name)
+
+            if avalue != evalue:
+                LOGGER.error("'%s' was '%s' instead of '%s'...\nMessage: %s\n\nExpected: %s\n\nActual: %s" %\
+                    (name, avalue, evalue, message, expected, actual.items()))
+                self.passed = False
+                break

Propchange: asterisk/trunk/tests/manager/config/ManagerConfigTest.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/config/ManagerConfigTest.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision URL

Propchange: asterisk/trunk/tests/manager/config/ManagerConfigTest.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: asterisk/trunk/tests/manager/config/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/config/test-config.yaml?view=auto&rev=5721
==============================================================================
--- asterisk/trunk/tests/manager/config/test-config.yaml (added)
+++ asterisk/trunk/tests/manager/config/test-config.yaml Mon Oct 13 11:21:09 2014
@@ -1,0 +1,408 @@
+testinfo:
+    summary:    'Test Manager GetConfig and UpdateConfig'
+    description: |
+        'Test Manager GetConfig and UpdateConfig'
+properties:
+    minversion: '12.7.0'
+    dependencies:
+        - python : 'twisted'
+        - python : 'starpy'
+    tags:
+        - manager
+        - AMI
+
+test-modules:
+    add-test-to-search-path: 'True'
+    test-object:
+        config-section: object-config
+        typename: 'ManagerConfigTest.ManagerConfigTest'
+
+object-config:
+    reactor-timeout: 15
+    ami-config:
+        - ###  Create a new config file
+            message:
+                Action: 'CreateConfig'
+                Filename: 'test.conf'
+            expected:
+                Response: 'Success'
+                Message: 'New configuration file created successfully'
+
+        - ###  Load initial values
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat1T'
+                Options-000000: 'template'
+
+                Action-000001: 'Append'
+                Cat-000001: 'Cat1T'
+                Var-000001: 'type'
+                Value-000001: 'type1'
+                Options-000001: 'catfilter="TEMPLATES=restrict"'
+
+                Action-000002: 'NewCat'
+                Cat-000002: 'Cat1'
+                Options-000002: 'inherit="Cat1T"'
+
+                Action-000003: 'Append'
+                Cat-000003: 'Cat1'
+                Var-000003: 'var1'
+                Value-000003: 'value1'
+
+                Action-000004: 'NewCat'
+                Cat-000004: 'Cat2T'
+                Options-000004: 'template'
+
+                Action-000005: 'Append'
+                Cat-000005: 'Cat2T'
+                Var-000005: 'type'
+                Value-000005: 'type2'
+                Options-000005: 'catfilter="TEMPLATES=restrict"'
+            expected:
+                Response: 'Success'
+
+        - ###  Find the one concrete category
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Templates-000000: 'Cat1T'
+                IsTemplate-000000: null
+                Line-000000-000000: 'type=type1'
+                Line-000000-000001: 'var1=value1'
+                Line-000000-000002: null
+                Category-000001: null
+
+        - ###  Find the fist template
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat1T'
+                Filter: 'TEMPLATES=restrict'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1T'
+                IsTemplate-000000: '1'
+                Category-000001: null
+
+        - ###  Find both templates
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Filter: 'TEMPLATES=restrict'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1T'
+                IsTemplate-000000: '1'
+                Category-000001: 'Cat2T'
+                IsTemplate-000001: '1'
+                Category-000002: null
+
+        - ###  Find everything
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Filter: 'TEMPLATES=include'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1T'
+                IsTemplate-000000: '1'
+                Category-000001: 'Cat1'
+                IsTemplate-000001: null
+                Templates-000001: 'Cat1T'
+                Category-000002: 'Cat2T'
+                IsTemplate-000002: '1'
+                Category-000003: null
+
+        - ###  Test for non existent config file
+            message:
+                Action: 'GetConfig'
+                Filename: 'nonexistent.conf'
+            expected:
+                Response: 'Error'
+
+        - ###  Add a new category
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat3'
+            expected:
+                Response: 'Success'
+
+        - ###  Now delete it
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'DelCat'
+                Cat-000000: 'Cat3'
+            expected:
+                Response: 'Success'
+
+        - ###  Make sure it's gone
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat3'
+            expected:
+                Response: 'Success'
+                Payload: 'No categories found'
+
+        - ###  Add a second Cat1 inheriting from Cat2T without ignoredups.  Should fail.
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat1'
+                Options-000000: 'inherit="Cat2T"'
+            expected:
+                Response: 'Error'
+                Message: 'Create category did not complete successfully'
+
+        - ###  Add a second Cat1 inheriting from nonexistent cat.  Should fail.
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat1'
+                Options-000000: 'ignoredups,inherit="CatZZZZZ"'
+            expected:
+                Response: 'Error'
+                Message: 'Create category did not complete successfully'
+
+        - ###  Add a second Cat1 inhetiting from Cat2T for real
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat1'
+                Options-000000: 'allowdups,inherit="Cat2T"'
+
+                Action-000001: 'Append'
+                Cat-000001: 'Cat1'
+                Var-000001: 'varXXX'
+                Value-000001: 'valueXXX'
+                Options-000001: 'catfilter="type=type2"'
+            expected:
+                Response: 'Success'
+
+        - ###  With no filters make sure both Cat1's are returned
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat1'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Category-000001: 'Cat1'
+                Category-000002: null
+
+        - ###  With a filter make sure only 1 Cat1 is returned
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat1'
+                Filter: 'varXXX=valueXXX'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Line-000000-000000: 'type=type2'
+                Line-000000-000001: 'varXXX=valueXXX'
+                Line-000000-000002: null
+                Category-000001: null
+
+        - ###  With no filters this should delete BOTH Cat1's
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'DelCat'
+                Cat-000000: 'Cat1'
+            expected:
+                Response: 'Success'
+
+        - ###  Make sure both are gone
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat1'
+            expected:
+                Response: 'Success'
+                Payload: 'No categories found'
+                Category-000000: null
+
+        - ###  Add 1 Cat1 back in again
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat1'
+                Options-000000: 'inherit="Cat1T"'
+
+                Action-000001: 'Append'
+                Cat-000001: 'Cat1'
+                Var-000001: 'var1'
+                Value-000001: 'value1'
+
+                Action-000002: 'Append'
+                Cat-000002: 'Cat1'
+                Var-000002: 'commonvar1'
+                Value-000002: 'commonvalue1'
+
+            expected:
+                Response: 'Success'
+
+        - ###  Add a Cat2 in with a variable in common with Cat1
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat2'
+                Options-000000: 'inherit="Cat2T"'
+
+                Action-000001: 'Append'
+                Cat-000001: 'Cat2'
+                Var-000001: 'var2'
+                Value-000001: 'value2'
+
+                Action-000002: 'Append'
+                Cat-000002: 'Cat2'
+                Var-000002: 'commonvar1'
+                Value-000002: 'commonvalue1'
+            expected:
+                Response: 'Success'
+
+        - ###  With only a filter make sure both Cat1 and Cat2 are returned
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Filter: 'commonvar1=commonvalue1'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Category-000001: 'Cat2'
+
+        - ###  Now add a second Cat2
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'NewCat'
+                Cat-000000: 'Cat2'
+                Options-000000: 'allowdups,inherit="Cat2T"'
+
+                Action-000001: 'Append'
+                Cat-000001: 'Cat2'
+                Var-000001: 'var2'
+                Value-000001: 'value2'
+
+                Action-000002: 'Append'
+                Cat-000002: 'Cat2'
+                Var-000002: 'commonvar1'
+                Value-000002: 'commonvalue1'
+            expected:
+                Response: 'Success'
+
+        - ###  Delete the commonvar1 from both
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'Delete'
+                Cat-000000: 'Cat2'
+                Var-000000: 'commonvar1'
+            expected:
+                Response: 'Success'
+
+        - ###  With only a filter only Cat1 should be returned
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Filter: 'commonvar1=commonvalue1'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Category-000001: null
+
+        - ###  Just make sure all 3 are still there
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Category-000001: 'Cat2'
+                Category-000002: 'Cat2'
+                Category-000003: null
+
+        - ###  Reset
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'DelCat'
+                Cat-000000: 'Cat1'
+
+                Action-000001: 'DelCat'
+                Cat-000001: 'Cat2'
+
+                Action-000002: 'NewCat'
+                Cat-000002: 'Cat1'
+
+                Action-000003: 'Append'
+                Cat-000003: 'Cat1'
+                Var-000003: 'type'
+                Value-000003: 'type1'
+
+            expected:
+                Response: 'Success'
+
+        -  ###  Insert var1 back into Cat1 at line 0
+            message:
+                Action: 'UpdateConfig'
+                SrcFilename: 'test.conf'
+                DstFilename: 'test.conf'
+
+                Action-000000: 'Insert'
+                Cat-000000: 'Cat1'
+                Var-000000: 'var1'
+                Value-000000: 'value1'
+                Line-000000: '0'
+            expected:
+                Response: 'Success'
+
+        - ###  Make sure lines are now in the right order
+            message:
+                Action: 'GetConfig'
+                Filename: 'test.conf'
+                Category: 'Cat1'
+            expected:
+                Response: 'Success'
+                Category-000000: 'Cat1'
+                Line-000000-000000: 'var1=value1'
+                Line-000000-000001: 'type=type1'
+                Line-000000-000002: null

Propchange: asterisk/trunk/tests/manager/config/test-config.yaml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: asterisk/trunk/tests/manager/config/test-config.yaml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision URL

Propchange: asterisk/trunk/tests/manager/config/test-config.yaml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: asterisk/trunk/tests/manager/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/manager/tests.yaml?view=diff&rev=5721&r1=5720&r2=5721
==============================================================================
--- asterisk/trunk/tests/manager/tests.yaml (original)
+++ asterisk/trunk/tests/manager/tests.yaml Mon Oct 13 11:21:09 2014
@@ -6,6 +6,7 @@
     - test: 'authtimeout'
     - test: 'acl-login'
     - test: 'bridge_actions'
+    - test: 'config'
     - dir:  'danger'
     - test: 'originate'
     - test: 'device_state_changed'




More information about the asterisk-commits mailing list