[buildout] extends = ${nxdtest-instance.cfg:rendered} parts += publish [slap-configuration] recipe = slapos.cookbook:slapconfiguration computer = $${slap-connection:computer-id} partition = $${slap-connection:partition-id} url = $${slap-connection:server-url} key = $${slap-connection:key-file} cert = $${slap-connection:cert-file} [create-directory] recipe = slapos.cookbook:mkdirectory bin = $${buildout:directory}/bin etc = $${buildout:directory}/etc services = $${:etc}/run srv = $${buildout:directory}/srv var = $${buildout:directory}/var nxdtest-working-dir = $${:var}/nxdtest [download-source] recipe = slapos.recipe.build:gitclone git-executable = ${git:location}/bin/git [kedifa] <= download-source repository = ${kedifa-repository:location} [caucase] <= download-source repository = ${caucase-repository:location} [caucase-test-runner] recipe = slapos.recipe.template:jinja2 template = inline:#!/bin/sh export HOSTS="$(mktemp)" trap 'rm "$HOSTS"' EXIT printf '%s testhost\n%s testhost\n' "$SLAPOS_TEST_IPV4" "$SLAPOS_TEST_IPV6" > "$HOSTS" export CAUCASE_NETLOC=testhost:8000 LD_PRELOAD=${userhosts:location}/lib/userhosts.so:$LD_PRELOAD exec python -m unittest discover -v rendered = $${caucase:location}/host_setting.sh [slapos.libnetworkcache] <= download-source repository = ${slapos.libnetworkcache-repository:location} [erp5.util] <= download-source repository = ${erp5.util-repository:location} [slapos.cookbook] <= download-source repository = ${slapos.cookbook-repository:location} [slapos.core] <= download-source repository = ${slapos.core-repository:location} [slapos.recipe.build] <= download-source repository = ${slapos.recipe.build-repository:location} [slapos.recipe.cmmi] <= download-source repository = ${slapos.recipe.cmmi-repository:location} [slapos.recipe.template] <= download-source repository = ${slapos.recipe.template-repository:location} [slapos.toolbox] <= download-source repository = ${slapos.toolbox-repository:location} [slapos.rebootstrap] <= download-source repository = ${slapos.rebootstrap-repository:location} [rubygemsrecipe] <= download-source repository = ${rubygemsrecipe-repository:location} [slapos-test-runner-nxdtest-environment.sh] recipe = slapos.recipe.template:jinja2 rendered = $${create-directory:etc}/$${:_buildout_section_name_} template = inline: export PATH=${coreutils:location}/bin:${curl:location}/bin:${openssl:location}/bin:${jq:location}/bin:${sed:location}/bin:${grep:location}/bin:${git:location}/bin:${libxslt:location}/bin:${socat:location}/bin:${lmsensors:location}/bin:${rsync:location}/bin/:${buildout:bin-directory}:$PATH export SLAPOS_TEST_IPV4=$${slap-configuration:ipv4-random} export SLAPOS_TEST_IPV6=$${slap-configuration:ipv6-random} export SLAPOS_TEST_EGGS_DIRECTORY=$${buildout:eggs-directory} export SLAPOS_TEST_DEVELOP_EGGS_DIRECTORY=$${buildout:develop-eggs-directory} [slapos-test-runner-dot-nxdtest] recipe = slapos.recipe.template:jinja2 rendered = $${:workdir}/.nxdtest workdir = $${create-directory:nxdtest-working-dir} template = inline: TestCase( "kedifa", ['python', '-m', 'unittest', 'discover', '-v'], cwd="""$${kedifa:location}""", summaryf=UnitTest.summary, ) TestCase( "caucase", ['$${caucase-test-runner:rendered}'], cwd="""$${caucase:location}""", summaryf=UnitTest.summary, ) TestCase( "erp5.util", ['python', '-m', 'unittest', 'discover', '-v', '--start', 'erp5/tests/'], cwd="""$${erp5.util:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.cookbook", # slapos/test contain both tests for recipes and tests for # json schemas, we only care about recipe tests here, json # schemas are tested in software/slapos-sr-testing ['python', '-m', 'unittest', 'discover', '-v', '--start', 'slapos/test/recipe'], cwd="""$${slapos.cookbook:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.core", # ['python', '-m', 'unittest', 'discover', '-v'], # XXX some test fail when running with unittest (slapos*.cfg.example # files cannot be found with pkg_resources.resource_string), so we keep # using setup.py test for now. ['python', 'setup.py', 'test'], cwd="""$${slapos.core:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.recipe.build", ['python', '-m', 'unittest', 'discover', '-v'], cwd="""$${slapos.recipe.build:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.recipe.cmmi", ['python', '-m', 'unittest', 'discover', '-v'], cwd="""$${slapos.recipe.cmmi:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.recipe.template", # ['python', '-m', 'unittest', 'slapos.recipe.template.tests.test_suite'], # XXX some test fail when running with unittest, so we keep using setup.py test ['python', 'setup.py', 'test'], cwd="""$${slapos.recipe.template:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.toolbox", # ['python', '-m', 'unittest', 'discover', '-v'], # XXX We can not just run unittest discover here, since slapos/lamp # imports MySQLDb and we currently don't have installed # slapos.toolbox[lampconfigure] and on python3 discovery make a # failing test for this import error. # Currently slapos/lamp is not tested, but if it it is still used, # the TODO seem to also install slapos.toolbox[lampconfigure] here. ['python', '-m', 'unittest', 'discover', '-v', '--start', 'slapos/test', '--top-level-directory', '.'], cwd="""$${slapos.toolbox:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.libnetworkcache", ['python', '-m', 'unittest', '-v', 'slapos.libnetworkcachetests'], cwd="""$${slapos.libnetworkcache:location}""", summaryf=UnitTest.summary, ) TestCase( "slapos.rebootstrap", ['python', '-m', 'unittest', '-v', 'slapos.rebootstrap.tests.test_suite'], cwd="""$${slapos.rebootstrap:location}""", summaryf=UnitTest.summary, ) TestCase( "rubygemsrecipe", ['python', '-m', 'unittest', 'discover', '-v'], cwd="""$${rubygemsrecipe:location}""", summaryf=UnitTest.summary, ) [runTestSuite] env.sh = $${slapos-test-runner-nxdtest-environment.sh:rendered} workdir = $${slapos-test-runner-dot-nxdtest:workdir} [slapos-local-development-environment.sh] recipe = slapos.recipe.template:jinja2 rendered = $${create-directory:etc}/$${:_buildout_section_name_} template = inline: source $${slapos-test-runner-nxdtest-environment.sh:rendered} echo "Environment loaded." echo "To work on a test, execute:" echo " $${runTestSuite:wrapper-path} -k test_name" echo "replacing test_name by the name of the test." echo [publish] recipe = slapos.cookbook:publish environment-script = $${slapos-local-development-environment.sh:rendered}