| Scott Baker | 04abc4e | 2015-09-28 16:01:21 -0700 | [diff] [blame] | 1 | from basetest import BaseToscaTest |
| 2 | |
| 3 | from core.models import Service |
| 4 | |
| 5 | class EngineTest(BaseToscaTest): |
| 6 | tests = ["intrinsic_get_artifact", |
| 7 | "intrinsic_get_script_env", |
| 8 | "intrinsic_get_script_env_noisy" ] |
| 9 | |
| 10 | def cleanup(self): |
| 11 | self.try_to_delete(Service, name="testservice") |
| 12 | |
| 13 | def intrinsic_get_artifact(self): |
| 14 | self.assert_noobj(Service, "testservice") |
| 15 | file("/tmp/somevar","w").write("somevalue") |
| 16 | self.execute(self.make_nodetemplate("testservice", "tosca.nodes.Service", |
| 17 | props={"public_key": "{ get_artifact: [ SELF, somevar, LOCAL_FILE] }"}, |
| 18 | artifacts={"somevar": "/tmp/somevar"})) |
| Scott Baker | 0e57372 | 2015-09-28 18:19:16 -0700 | [diff] [blame] | 19 | self.assert_obj(Service, "testservice", public_key="somevalue") |
| Scott Baker | 04abc4e | 2015-09-28 16:01:21 -0700 | [diff] [blame] | 20 | |
| 21 | def intrinsic_get_script_env(self): |
| 22 | self.assert_noobj(Service, "testservice") |
| 23 | file("/tmp/somescript","w").write( \ |
| 24 | """#! /bin/bash |
| 25 | FOO=123 |
| 26 | BAR=456 |
| 27 | JUNK=789 |
| 28 | """) |
| 29 | self.execute(self.make_nodetemplate("testservice", "tosca.nodes.Service", |
| 30 | props={"public_key": "{ get_script_env: [ SELF, somescript, BAR, LOCAL_FILE] }"}, |
| 31 | artifacts={"somescript": "/tmp/somescript"})) |
| 32 | self.assert_obj(Service, "testservice", public_key="456") |
| 33 | |
| 34 | def intrinsic_get_script_env_noisy(self): |
| 35 | self.assert_noobj(Service, "testservice") |
| 36 | file("/tmp/somescript","w").write( \ |
| 37 | """#! /bin/bash |
| 38 | echo "junk" |
| 39 | echo "oh no! something got written to stderr! This always breaks stuff!" >&2 |
| 40 | FOO=123 |
| 41 | echo "more junk" |
| 42 | BAR=456 |
| 43 | echo "even more junk" |
| 44 | JUNK=789 |
| 45 | echo "BAR=oops" |
| 46 | """) |
| 47 | self.execute(self.make_nodetemplate("testservice", "tosca.nodes.Service", |
| 48 | props={"public_key": "{ get_script_env: [ SELF, somescript, BAR, LOCAL_FILE] }"}, |
| 49 | artifacts={"somescript": "/tmp/somescript"})) |
| 50 | self.assert_obj(Service, "testservice", public_key="456") |
| 51 | |
| 52 | if __name__ == "__main__": |
| 53 | EngineTest() |