Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
itminedu
kamaki
Commits
f767b407
Commit
f767b407
authored
Sep 17, 2013
by
Stavros Sachtouris
Browse files
Unittest kamaki.cli.Config.__init__
Refs: #4058
parent
9f5cbafe
Changes
2
Hide whitespace changes
Inline
Side-by-side
kamaki/cli/config/test.py
View file @
f767b407
...
@@ -31,17 +31,79 @@
...
@@ -31,17 +31,79 @@
# interpreted as representing official policies, either expressed
# interpreted as representing official policies, either expressed
# or implied, of GRNET S.A.
# or implied, of GRNET S.A.
from
mock
import
patch
,
call
,
MagicMock
from
mock
import
patch
,
call
from
unittest
import
TestCase
from
unittest
import
TestCase
from
StringIO
import
StringIO
from
itertools
import
product
from
datetime
import
datetime
import
os
#from itertools import product
from
kamaki.cli
import
argument
,
errors
from
kamaki.cli.config
import
Config
def
_2steps_gen
(
limit
=
2
):
counter
,
ret
=
0
,
None
while
True
:
if
counter
>=
limit
:
ret
=
None
if
ret
else
'something'
counter
=
0
counter
+=
1
yield
ret
_2value_gen
=
_2steps_gen
()
class
Config
(
TestCase
):
"""Test Config methods"""
@
patch
(
'kamaki.cli.config.Config.remove_section'
)
@
patch
(
'kamaki.cli.config.Config.items'
,
return_value
=
(
(
'k1'
,
'v1'
),
(
'k2'
,
'v2'
)))
@
patch
(
'kamaki.cli.config.Config.sections'
,
return_value
=
(
'a'
,
'b'
))
@
patch
(
'kamaki.cli.config.Config.set_cloud'
)
@
patch
(
'kamaki.cli.config.Config.read'
)
@
patch
(
'kamaki.cli.config.Config._load_defaults'
)
def
test___init__
(
self
,
_ld
,
c_read
,
c_set_cloud
,
c_sections
,
c_items
,
c_remove_section
):
from
kamaki.cli.config
import
(
Config
,
RawConfigParser
,
CONFIG_ENV
,
CONFIG_PATH
)
_ld_num
,
c_sections_num
,
c_items_num
,
c_set_cloud_num
=
0
,
0
,
0
,
0
c_remove_section_num
,
gen_call
=
0
,
[
call
(
'a'
),
call
(
'b'
)]
for
path
,
with_defaults
in
product
((
None
,
'/a/path'
),
(
True
,
False
)):
with
patch
(
'kamaki.cli.config.Config._cloud_name'
,
return_value
=
_2value_gen
.
next
())
as
_cloud_name
:
cnf
=
Config
(
path
=
path
,
with_defaults
=
with_defaults
)
self
.
assertTrue
(
isinstance
(
cnf
,
RawConfigParser
))
cpath
=
path
or
os
.
environ
.
get
(
CONFIG_ENV
,
CONFIG_PATH
)
self
.
assertEqual
(
cnf
.
path
,
cpath
)
if
with_defaults
:
_ld_num
+=
1
self
.
assertEqual
(
_ld
.
mock_calls
[
-
1
],
call
())
self
.
assertEqual
(
len
(
_ld
.
mock_calls
),
_ld_num
)
self
.
assertEqual
(
c_read
.
mock_calls
[
-
1
],
call
(
cpath
))
c_sections_num
+=
1
self
.
assertEqual
(
len
(
c_sections
.
mock_calls
),
c_sections_num
)
self
.
assertEqual
(
c_sections
.
mock_calls
[
-
1
],
call
())
self
.
assertEqual
(
_cloud_name
.
mock_calls
,
gen_call
)
r
=
_2value_gen
.
next
()
if
r
:
c_items_num
+=
2
self
.
assertEqual
(
c_items
.
mock_calls
[
-
2
:],
gen_call
)
c_set_cloud_num
+=
4
self
.
assertEqual
(
c_set_cloud
.
mock_calls
[
-
4
:],
[
call
(
r
,
'k1'
,
'v1'
),
call
(
r
,
'k2'
,
'v2'
),
call
(
r
,
'k1'
,
'v1'
),
call
(
r
,
'k2'
,
'v2'
)])
c_remove_section_num
+=
2
self
.
assertEqual
(
c_remove_section
.
mock_calls
[
-
2
:],
gen_call
)
self
.
assertEqual
(
len
(
c_items
.
mock_calls
),
c_items_num
)
self
.
assertEqual
(
len
(
c_set_cloud
.
mock_calls
),
c_set_cloud_num
)
self
.
assertEqual
(
len
(
c_remove_section
.
mock_calls
),
c_remove_section_num
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
from
sys
import
argv
from
sys
import
argv
from
kamaki.cli.test
import
runTestCase
from
kamaki.cli.test
import
runTestCase
#
runTestCase(
Argument, 'Argument
', argv[1:])
runTestCase
(
Config
,
'Config
'
,
argv
[
1
:])
kamaki/cli/test.py
View file @
f767b407
...
@@ -38,6 +38,7 @@ from mock import patch, call
...
@@ -38,6 +38,7 @@ from mock import patch, call
from
itertools
import
product
from
itertools
import
product
from
kamaki.cli.command_tree.test
import
Command
,
CommandTree
from
kamaki.cli.command_tree.test
import
Command
,
CommandTree
from
kamaki.cli.config.test
import
Config
from
kamaki.cli.argument.test
import
(
from
kamaki.cli.argument.test
import
(
Argument
,
ConfigArgument
,
RuntimeConfigArgument
,
FlagArgument
,
Argument
,
ConfigArgument
,
RuntimeConfigArgument
,
FlagArgument
,
ValueArgument
,
IntArgument
,
DateArgument
,
VersionArgument
,
ValueArgument
,
IntArgument
,
DateArgument
,
VersionArgument
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment