[buildout]
parts =
  slapos-test-runner
  publish

eggs-directory = {{ buildout['eggs-directory'] }}
develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
offline = true

[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}

[download-source]
recipe = slapos.recipe.build:gitclone
git-executable = {{ git_location }}/bin/git

[slapos]
<= download-source
repository = {{ slapos_location }}

[directory]
recipe = slapos.cookbook:mkdirectory
bin = ${buildout:directory}/bin
working-dir = ${buildout:directory}/tmp
etc = ${buildout:directory}/etc

[slapos-test-runner]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:bin}/runTestSuite
command-line =
  {{ buildout['bin-directory'] }}/runTestSuite
  --python_interpreter={{ buildout['bin-directory'] }}/{{ interpreter }}
  --source_code_path_list={{ ','.join(tests.splitlines()) }}

environment =
  PATH=${slapos-test-runner-environment:PATH}
  SLAPOS_TEST_IPV4=${slapos-test-runner-environment:SLAPOS_TEST_IPV4}
  SLAPOS_TEST_IPV6=${slapos-test-runner-environment:SLAPOS_TEST_IPV6}
  SLAPOS_TEST_WORKING_DIR=${slapos-test-runner-environment:SLAPOS_TEST_WORKING_DIR}

[slapos-test-runner-environment]
PATH = {{ buildout['bin-directory'] }}:{{ curl_location }}/bin/:/usr/bin/:/bin
SLAPOS_TEST_IPV4 = ${slap-configuration:ipv4-random}
SLAPOS_TEST_IPV6 = ${slap-configuration:ipv6-random}
SLAPOS_TEST_WORKING_DIR = ${directory:working-dir}

[slapos-local-development-environment.sh]
recipe = slapos.recipe.template:jinja2
rendered = ${directory:etc}/${:_buildout_section_name_}
template = inline:
  export PATH=${slapos-test-runner-environment:PATH}:$PATH
  export SLAPOS_TEST_IPV4=${slapos-test-runner-environment:SLAPOS_TEST_IPV4}
  export SLAPOS_TEST_IPV6=${slapos-test-runner-environment:SLAPOS_TEST_IPV6}
  export SLAPOS_TEST_WORKING_DIR=${slapos-test-runner-environment:SLAPOS_TEST_WORKING_DIR}
  {% set shared_part_list = [] %}
  {% for shared_part in buildout['shared-part-list'].splitlines() -%}
    {% do shared_part_list.append(shared_part) %}
  {%- endfor %}
  export SLAPOS_TEST_SHARED_PART_LIST={{ os.pathsep.join(shared_part_list) }}
  echo "Environment loaded."
  echo "To work on a test, execute:"
  echo "   SLAPOS_TEST_DEBUG=1 {{ interpreter }} setup.py test"
  echo "from test folder"
  echo

[publish]
recipe = slapos.cookbook:publish
environment-script = ${slapos-local-development-environment.sh:rendered}
