configurationengine/source/plugins/symbian/ConeCRMLPlugin/CRMLPlugin/tests/unittest_crml_reader.py
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
permissions -rw-r--r--
Adding EPL version of configurationengine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
# Description:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
import sys, os, unittest
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
import __init__
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
    from cElementTree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
    try:    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
        from elementtree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
    except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
            from xml.etree import cElementTree as ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
        except ImportError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
            from xml.etree import ElementTree
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
from cone.public import exceptions, plugin, api, container
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
from CRMLPlugin.crml_model import *
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
from CRMLPlugin.crml_reader import CrmlReader
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
class TestCrmlReader(unittest.TestCase):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
    NAMESPACE = CrmlReader.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
    def setUp(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
        self.reader = CrmlReader()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
    def assert_read_access_equals(self, data, expected):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
        etree = ElementTree.fromstring(data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
        access = self.reader.read_access(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
        self.assertEquals(expected, access)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
    def test_read_access(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
        data = """<?xml version="1.0"?><test/>"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
        self.assert_read_access_equals(data, CrmlAccess())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
        data = """<?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
                <test xmlns='%s'>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
                    <access type='R' capabilities="AlwaysPass" sid="0x12345678"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
                    <access type='W' capabilities="WriteDeviceData" sid="0x87654321"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
                </test>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
                """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
        self.assert_read_access_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
            CrmlAccess(cap_rd='AlwaysPass', cap_wr='WriteDeviceData', sid_rd='0x12345678', sid_wr='0x87654321'))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
    def test_read_duplicate_access(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
        data = """<?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
                <test xmlns='%s'>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
                    <access type='R' capabilities="ReadDeviceData" sid="0x12345678"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
                    <access type='W' capabilities="WriteDeviceData" sid="0x87654321"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
                    <access type='R' capabilities="TCB" sid="0x11223344"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
                    <access type='W' capabilities="DRM" sid="0x44332211"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
                </test>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
                """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
        self.assert_read_access_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
            CrmlAccess(cap_rd='ReadDeviceData', cap_wr='WriteDeviceData', sid_rd='0x12345678', sid_wr='0x87654321'))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
    def read_key_from_xml(self, data):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        etree = ElementTree.fromstring(data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
        return self.reader.read_key(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
    def assert_read_key_equals(self, data, expected):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
        self.assertEquals(expected, self.read_key_from_xml(data))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
    def test_read_key(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
        data = """<?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
                <key xmlns='%s' ref="Foo/Bar" name="Foobar setting" int="0x01020304" type="real" readOnly="true" backup="true">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
                    <access type='R' capabilities="AlwaysPass" sid="0x12345678"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
                    <access type='W' capabilities="WriteDeviceData" sid="0x87654321"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
                </key>""" % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
        self.assert_read_key_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
            CrmlSimpleKey(ref='Foo.Bar', name='Foobar setting', int='0x01020304', type='real', read_only=True, backup=True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
                          access=CrmlAccess(cap_rd='AlwaysPass', cap_wr='WriteDeviceData', sid_rd='0x12345678', sid_wr='0x87654321')))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
    def test_read_invalid_key(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
        # Required attribute 'ref' missing
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
        data = '<key xmlns="%s" name="Foobar setting" int="0x01020304" type="real"/>' % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
        self.assertRaises(exceptions.ParseError, self.read_key_from_xml, data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
    def assert_read_bitmask_key_equals(self, data, expected):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
        etree = ElementTree.fromstring(data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        key = self.reader.read_bitmask_key(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        self.assertEquals(expected, key)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
    def test_read_bitmask_key(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        data = """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
        <key xmlns='%s' name="Bitmask" type="binary" int="0x00000001" readOnly="true" backup="true">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
            <access type="R" capabilities="ReadDeviceData"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
            <bit ref="BitmaskTest/Bit0">1</bit>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
            <bit ref="BitmaskTest/Bit3">4</bit>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
            <bit ref="BitmaskTest/Bit5" value='false'>6</bit>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
        </key>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
        """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
        self.assert_read_bitmask_key_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
            CrmlBitmaskKey(name      = 'Bitmask',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
                           type      = 'binary',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
                           int       = '0x00000001',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
                           read_only = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
                           backup    = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
                           access    = CrmlAccess(cap_rd='ReadDeviceData'),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
                           bits      = [CrmlBit(ref='BitmaskTest.Bit0', index=1),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
                                        CrmlBit(ref='BitmaskTest.Bit3', index=4),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
                                        CrmlBit(ref='BitmaskTest.Bit5', index=6, invert=True)]))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
    def assert_read_key_range_equals(self, data, expected):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
        etree = ElementTree.fromstring(data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
        key = self.reader.read_key_range(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        self.assertEquals(expected, key)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
    def test_read_key_range(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
        data = """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
            <keyRange xmlns='%s' firstInt="0x00004000" lastInt="0x00004FFF" readOnly="true" backup="false">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
                <access type="R" capabilities="TCB"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
            </keyRange>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
            """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
        self.assert_read_key_range_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
            CrmlKeyRange(first_int='0x00004000', last_int='0x00004FFF', read_only=True, backup=False,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
                         access=CrmlAccess(cap_rd='TCB')))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
        data = """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
            <keyRange xmlns='%s' ref="KeyRangeTest/SequenceSetting" backup="true" name="Sequence setting"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
                firstInt="0x1001" lastInt="0x1fff" indexBits="0x0ff0" firstIndex="1" countInt="0x1000">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
                <access type="R" capabilities="AlwaysPass"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
                <access type="W" capabilities="WriteDeviceData"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
                <key ref="StringSubSetting" name="String" int="0x0001" type="string8"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
                <key ref="IntSubSetting" name="Int" int="0x0002" type="int"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
                <key ref="IntSubSetting2" name="Int2" int="0x0003"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
            </keyRange>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
            """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
        self.assert_read_key_range_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
            CrmlKeyRange(first_int='0x1001', last_int='0x1fff', index_bits=0x0ff0,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
                         count_int='0x1000', first_index=1,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
                         ref='KeyRangeTest.SequenceSetting',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
                         name='Sequence setting', backup=True, read_only=False,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
                         access=CrmlAccess(cap_rd='AlwaysPass', cap_wr='WriteDeviceData'),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
                         subkeys=[CrmlKeyRangeSubKey(ref='StringSubSetting', name='String', int='0x0001', type='string8'),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
                                  CrmlKeyRangeSubKey(ref='IntSubSetting', name='Int', int='0x0002', type='int'),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
                                  CrmlKeyRangeSubKey(ref='IntSubSetting2', name='Int2', int='0x0003', type='int')]))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
    def assert_read_repo_equals(self, data, expected):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
        etree = ElementTree.fromstring(data)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
        key = self.reader.read_repository(etree)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
        self.assertEquals(expected, key)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
    def test_read_empty_repository(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
        data = """<?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
            <repository xmlns="%s" uidName="EmptyRepo" uidValue="0x000000E1"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
                owner="0xABCDDCBA" backup="true" rfs="true" initialisationFileVersion="2">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
            </repository>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
            """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        self.assert_read_repo_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
            CrmlRepository(uid_name  = 'EmptyRepo',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
                           uid_value = '0x000000E1',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
                           owner     = '0xABCDDCBA',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
                           backup    = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
                           rfs       = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
                           version   = '2'))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
    def test_read_simple_repository(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
        data = """<?xml version="1.0"?>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
            <repository xmlns="%s" uidName="SimpleRepo" uidValue="0x000000E2"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
                owner="0xF00DBEEF" backup="true" rfs="true">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
                <key ref="Foo/Key1" name="Fookey 1" int="0x00000001" type="int" readOnly="true" backup="true"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
                <key ref="Foo/Key2" name="Fookey 2" int="0x00000002" type="real" readOnly="false" backup="true"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
                <key ref="Foo/Key3" name="Fookey 3" int="0x00000003" type="string" readOnly="true" backup="false"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
            </repository>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
            """ % self.NAMESPACE
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
        self.assert_read_repo_equals(data,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
            CrmlRepository(
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
                uid_name  = 'SimpleRepo',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
                uid_value = '0x000000E2',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
                owner     = '0xF00DBEEF',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
                backup    = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
                rfs       = True,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
                version   = '1',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
                keys      = [CrmlSimpleKey(ref='Foo.Key1', name='Fookey 1', int='0x00000001', type='int', read_only=True, backup=True, access=CrmlAccess(cap_wr='AlwaysFail')),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
                             CrmlSimpleKey(ref='Foo.Key2', name='Fookey 2', int='0x00000002', type='real', read_only=False, backup=True),
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
                             CrmlSimpleKey(ref='Foo.Key3', name='Fookey 3', int='0x00000003', type='string', read_only=True, backup=False, access=CrmlAccess(cap_wr='AlwaysFail')),]))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
if __name__ == "__main__":
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
    unittest.main()