33import unittest
44
55from mock import Mock
6+ from xml .etree import ElementTree as ET
7+ from parameterized import parameterized_class
68
79import oca
810
1416NETWORK_ADDRESS = 192.168.0.0"""
1517
1618
19+ @parameterized_class ([
20+ {'one_version' : '4.10.0' },
21+ {'one_version' : '5.0.0' },
22+ ])
1723class TestVirtualNetwork (unittest .TestCase ):
1824 def setUp (self ):
1925 self .client = oca .Client ('test:test' )
26+ self .client .call = Mock (return_value = self .one_version )
2027 self .xml = open (os .path .join (os .path .dirname (oca .__file__ ),
2128 'tests/fixtures/vnet.xml' )).read ()
2229
30+ if self .one_version == '5.0.0' :
31+ xml_v5 = ET .fromstring (self .xml )
32+ vn_mad = ET .Element ('VN_MAD' )
33+ vn_mad .text = 'vn_dummy'
34+ xml_v5 .append (vn_mad )
35+ self .xml = ET .tostring (xml_v5 ).decode ('utf-8' )
36+
37+ def tearDown (self ):
38+ version = self .client .one_version
39+ if version is not None and version .startswith ('5.' ):
40+ xml_types = oca .VirtualNetwork .XML_TYPES
41+ del xml_types ['vn_mad' ]
42+
43+ def test_instantiate (self ):
44+ h = oca .VirtualNetwork (self .xml , self .client )
45+ self .client .call .assert_called_once_with ('system.version' )
46+ expected = None if self .one_version == '4.10.0' else 'vn_dummy'
47+ assert (getattr (h , 'vn_mad' , None ) == expected )
48+
2349 def test_allocate (self ):
2450 self .client .call = Mock (return_value = 2 )
2551 assert oca .VirtualNetwork .allocate (self .client , VN_TEMPLATE ) == 2
2652
2753 def test_publish (self ):
28- self .client .call = Mock (return_value = '' )
2954 h = oca .VirtualNetwork (self .xml , self .client )
55+ self .client .call = Mock (return_value = '' )
3056 h ._convert_types ()
3157 h .publish ()
3258 self .client .call .assert_called_once_with ('vn.publish' , 3 , True )
3359
3460 def test_unpublish (self ):
35- self .client .call = Mock (return_value = '' )
3661 h = oca .VirtualNetwork (self .xml , self .client )
62+ self .client .call = Mock (return_value = '' )
3763 h ._convert_types ()
3864 h .unpublish ()
3965 self .client .call .assert_called_once_with ('vn.publish' , 3 , False )
@@ -44,8 +70,8 @@ def test_repr(self):
4470 assert h .__repr__ () == '<oca.VirtualNetwork("Red LAN")>'
4571
4672 def test_chown (self ):
47- self .client .call = Mock (return_value = '' )
4873 h = oca .VirtualNetwork (self .xml , self .client )
74+ self .client .call = Mock (return_value = '' )
4975 h ._convert_types ()
5076 h .chown (2 , 2 )
5177 self .client .call .assert_called_once_with ('vn.chown' , 3 , 2 , 2 )
0 commit comments