Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.toolbox
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Titouan Soulard
slapos.toolbox
Commits
2a5685d6
Commit
2a5685d6
authored
Aug 05, 2016
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add initial test for test_agent code.
parent
24ca5a0a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
163 additions
and
6 deletions
+163
-6
slapos/agent/agent.py
slapos/agent/agent.py
+7
-6
slapos/test/test_agent.py
slapos/test/test_agent.py
+156
-0
No files found.
slapos/agent/agent.py
View file @
2a5685d6
...
...
@@ -71,19 +71,22 @@ from tester import SoftwareReleaseTester
class
TestMap
(
object
):
def
__init__
(
self
,
test_dict
):
self
.
ran_test_set
=
set
()
self
.
test_map_dict
=
collections
.
OrderedDict
()
for
key
in
test_dict
:
group
=
test_dict
[
key
].
get
(
"group"
,
"default"
)
if
group
not
in
self
.
test_map_dict
:
self
.
test_map_dict
[
group
]
=
[
key
]
def
addRanTest
(
self
,
test
):
self
.
ran_test_set
.
add
(
test
)
def
getExcludeList
(
self
,
group
):
exclude_list
=
[]
for
key
in
self
.
test_map_dict
:
if
key
!=
group
:
exclude_list
.
extend
(
self
.
test_map_dict
[
key
])
return
set
(
exclude_list
)
return
set
(
exclude_list
+
list
(
self
.
ran_test_set
)
)
def
getGroupList
(
self
):
return
self
.
test_map_dict
.
keys
()
...
...
@@ -328,7 +331,6 @@ def main():
supply
=
slap
.
registerSupply
()
order
=
slap
.
registerOpenOrder
()
ran_test_set
=
set
()
running_test_dict
=
{}
logger
.
info
(
'Starting Test Agent run %s '
%
agent_parameter_dict
[
'node_title'
])
...
...
@@ -346,11 +348,10 @@ def main():
# Select a test
test_line
=
test_result
.
start
(
exclude_list
=
list
(
ran_test_set
)
+
\
list
(
test_mapping
.
getExcludeList
(
group
)))
exclude_list
=
list
(
test_mapping
.
getExcludeList
(
group
)))
logger
.
info
(
"Test Line: %s "
%
test_line
)
logger
.
info
(
"Ran Test Set: %s "
%
ran_test_set
)
logger
.
info
(
"Ran Test Set: %s "
%
test_mapping
.
ran_test_set
)
logger
.
info
(
"Running test dict: %s "
%
running_test_dict
)
logger
.
info
(
"Group: %s "
%
group
)
...
...
@@ -382,7 +383,7 @@ def main():
agent_parameter_dict
.
get
(
'software_timeout'
,
general_timeout
),
agent_parameter_dict
.
get
(
'instance_timeout'
,
general_timeout
)
)
ran_test_set
.
add
(
test_name
)
test_mapping
.
addRanTest
(
test_name
)
running_test_dict
[
test_name
]
=
(
test_line
,
tester
,
group
)
if
not
running_test_dict
:
...
...
slapos/test/test_agent.py
0 → 100644
View file @
2a5685d6
##############################################################################
#
# Copyright (c) 2015 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import
unittest
import
os.path
from
slapos.agent.agent
import
AutoSTemp
,
TestMap
TESTMAP_DICT
=
{
"test-wendelin-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/wendelin/software.cfg"
,
"supply_computer"
:
"COMP-2"
,
"group"
:
"COMP-2"
,
"title"
:
"test-wendelin-software-release"
},
"test-agent-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/agent/software.cfg"
,
"supply_computer"
:
"COMP-2"
,
"group"
:
"COMP-2"
,
"title"
:
"test-agent-software-release"
},
"test-powerdns-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/powerdns/software.cfg"
,
"supply_computer"
:
"COMP-2"
,
"group"
:
"COMP-2"
,
"title"
:
"test-powerdns-software-release"
},
"test-monitor-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/monitor/software.cfg"
,
"supply_computer"
:
"COMP-2"
,
"group"
:
"COMP-2"
,
"title"
:
"test-monitor-software-release"
},
"test-slapos-master-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/slapos-master/software.cfg"
,
"supply_computer"
:
"COMP-1"
,
"group"
:
"COMP-1"
,
"title"
:
"test-slapos-master-software-release"
},
"test-webrunner-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/slaprunner/software.cfg"
,
"supply_computer"
:
"COMP-1"
,
"group"
:
"COMP-1"
,
"title"
:
"test-webrunner-software-release"
},
"test-re6stnetmaster-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/re6stnet/software.cfg"
,
"supply_computer"
:
"COMP-2"
,
"group"
:
"COMP-2"
,
"title"
:
"test-re6stnetmaster-software-release"
},
"test-erp5testnode-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/erp5testnode/software.cfg"
,
"supply_computer"
:
"COMP-1"
,
"group"
:
"COMP-1"
,
"title"
:
"test-erp5testnode-software-release"
},
"test-apache-frontend-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/apache-frontend/software.cfg"
,
"supply_computer"
:
"COMP-1"
,
"group"
:
"COMP-1"
,
"title"
:
"test-apache-frontend-software-release"
},
"test-nayuos-software-release"
:
{
"url"
:
"https://lab.nexedi.com/nexedi/slapos/raw/1.0/software/nayuos/software.cfg"
,
"supply_computer"
:
"COMP-1"
,
"group"
:
"COMP-1"
,
"title"
:
"test-nayuos-software-release"
}
}
class
TestTestMap
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
test_map
=
TestMap
(
TESTMAP_DICT
)
def
test_group
(
self
):
""" Check available group of tests """
self
.
assertEquals
(
self
.
test_map
.
getGroupList
(),
[
"COMP-1"
,
"COMP-2"
])
def
test_getnextgroup
(
self
):
""" Get Next Group """
self
.
assertEquals
(
self
.
test_map
.
getNextGroup
([]),
"COMP-1"
)
self
.
assertEquals
(
self
.
test_map
.
getNextGroup
(
ignore_list
=
[
"COMP-1"
]),
"COMP-2"
)
def
test_getexcludelist
(
self
):
""" Check available group of tests """
self
.
assertEquals
(
self
.
test_map
.
getExcludeList
(
"COMP-1"
),
set
([
'test-agent-software-release'
]))
self
.
assertEquals
(
self
.
test_map
.
getExcludeList
(
"COMP-2"
),
set
([
'test-apache-frontend-software-release'
]))
self
.
test_map
.
addRanTest
(
'test-apache-frontend-software-release'
)
self
.
assertEquals
(
self
.
test_map
.
getExcludeList
(
"COMP-2"
),
set
([
'test-apache-frontend-software-release'
]))
def
test_dropgroup
(
self
):
""" Check available group of tests """
test_map_copy
=
TestMap
(
TESTMAP_DICT
)
self
.
assertEquals
(
test_map_copy
.
getGroupList
(),
[
"COMP-1"
,
"COMP-2"
])
test_map_copy
.
dropGroup
(
"COMP-1"
)
self
.
assertEquals
(
test_map_copy
.
getGroupList
(),
[
"COMP-2"
])
def
test_cleanup_empty_group
(
self
):
""" Check available group of tests """
test_map_copy
=
TestMap
(
TESTMAP_DICT
)
test_map_copy
.
test_map_dict
[
"NEWGROUP"
]
=
{}
self
.
assertEquals
(
test_map_copy
.
getGroupList
(),
[
"COMP-1"
,
"COMP-2"
,
"NEWGROUP"
])
test_map_copy
.
cleanEmptyGroup
()
self
.
assertEquals
(
test_map_copy
.
getGroupList
(),
[
"COMP-1"
,
"COMP-2"
])
class
TestAutoSTemp
(
unittest
.
TestCase
):
def
test_autostemp
(
self
):
""" Test AutoSTemp creates the file with content and
removes it when deleted.
"""
f
=
AutoSTemp
(
"foo"
)
self
.
assertEquals
(
open
(
f
.
name
,
"r"
).
read
(),
"foo"
)
fname
=
f
.
name
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
del
f
self
.
assertFalse
(
os
.
path
.
isfile
(
fname
))
if
__name__
==
'__main__'
:
unittest
.
main
()
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