From 429832b8f7c7a54aabc21ca0ab3a58372d6bc58b Mon Sep 17 00:00:00 2001 From: David Wilson Date: Wed, 31 Oct 2018 00:46:47 +0000 Subject: [PATCH] issue #409: add kubectl stub and constructor test. --- tests/data/stubs/stub-kubectl.py | 8 ++++++++ tests/kubectl_test.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 tests/data/stubs/stub-kubectl.py create mode 100644 tests/kubectl_test.py diff --git a/tests/data/stubs/stub-kubectl.py b/tests/data/stubs/stub-kubectl.py new file mode 100755 index 00000000..16f7e460 --- /dev/null +++ b/tests/data/stubs/stub-kubectl.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python + +import sys +import os + +os.environ['ORIGINAL_ARGV'] = repr(sys.argv) +os.environ['THIS_IS_STUB_KUBECTL'] = '1' +os.execv(sys.executable, sys.argv[sys.argv.index('--') + 1:]) diff --git a/tests/kubectl_test.py b/tests/kubectl_test.py new file mode 100644 index 00000000..0bac3048 --- /dev/null +++ b/tests/kubectl_test.py @@ -0,0 +1,29 @@ + +import os + +import mitogen +import mitogen.parent + +import unittest2 + +import testlib + + +class ConstructorTest(testlib.RouterMixin, testlib.TestCase): + kubectl_path = testlib.data_path('stubs/stub-kubectl.py') + + def test_okay(self): + context = self.router.kubectl( + pod='pod_name', + kubectl_path=self.kubectl_path + ) + + argv = eval(context.call(os.getenv, 'ORIGINAL_ARGV')) + self.assertEquals(argv[0], self.kubectl_path) + self.assertEquals(argv[1], 'exec') + self.assertEquals(argv[2], '-it') + self.assertEquals(argv[3], 'pod_name') + + +if __name__ == '__main__': + unittest2.main()