You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by ke...@apache.org on 2014/10/30 19:11:15 UTC

git commit: Add a script to generate a PyCharm-compatible virtualenv.

Repository: incubator-aurora
Updated Branches:
  refs/heads/master d85e616b3 -> 349a76dc5


Add a script to generate a PyCharm-compatible virtualenv.

Note there are a few changes to test code to allow running without pants as the test runner:

* Use relative imports in test packages.
* Added blank `__init__.py` files to test directories that need to use relative imports now.
* Catch PexInfo errors that result from not running inside a PEX.
* Add requirements.txt to .gitignore (we generate it from pants) - it helps
pycharm offer quick fixes and identify packages with updates available.

To create a PyCharm project:

Set the project interpreter to `build-support/python/pycharm.venv/bin/python`.
Mark `src/main/python` as a Sources Root.
Go to Settings > Python Integrated Tools and set `Default test runner` to `py.test`.

Testing Done:
./pants src/test/python:all

./build-support/python/make-pycharm-virtualenv
source build-support/python/pycharm.venv/bin/activate
PYTHONPATH=src/main/python py.test src/test/python

Tested PyCharm Community Edition 3.4. Basic navigation (Ctrl-click) works. Find usages
works. Py.Test works if configured manually. Not a great experience, but better than no IDE
whatsoever for some things.

Reviewed at https://reviews.apache.org/r/27364/


Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/349a76dc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/349a76dc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/349a76dc

Branch: refs/heads/master
Commit: 349a76dc5298e51c8e48c2dc00a17bf03f86f62c
Parents: d85e616
Author: Kevin Sweeney <ke...@apache.org>
Authored: Thu Oct 30 11:10:34 2014 -0700
Committer: Kevin Sweeney <ke...@apache.org>
Committed: Thu Oct 30 11:10:34 2014 -0700

----------------------------------------------------------------------
 .gitignore                                      |  1 +
 build-support/python/make-pycharm-virtualenv    | 41 ++++++++++++++++++++
 .../python/apache/aurora/client/cli/__init__.py |  3 +-
 .../apache/aurora/executor/executor_vars.py     |  3 +-
 .../python/apache/aurora/client/api/__init__.py | 13 +++++++
 .../apache/aurora/client/api/test_restarter.py  |  3 +-
 .../apache/aurora/client/api/test_updater.py    |  3 +-
 .../python/apache/aurora/client/cli/__init__.py | 13 +++++++
 .../aurora/client/cli/test_api_from_cli.py      |  3 +-
 .../aurora/client/cli/test_cancel_update.py     |  3 +-
 .../aurora/client/cli/test_command_hooks.py     |  3 +-
 .../aurora/client/cli/test_config_noun.py       |  3 +-
 .../apache/aurora/client/cli/test_create.py     |  3 +-
 .../apache/aurora/client/cli/test_cron.py       |  3 +-
 .../apache/aurora/client/cli/test_diff.py       |  3 +-
 .../apache/aurora/client/cli/test_help.py       |  1 +
 .../apache/aurora/client/cli/test_inspect.py    |  3 +-
 .../apache/aurora/client/cli/test_kill.py       |  3 +-
 .../apache/aurora/client/cli/test_logging.py    |  3 +-
 .../apache/aurora/client/cli/test_open.py       |  3 +-
 .../apache/aurora/client/cli/test_plugins.py    |  3 +-
 .../apache/aurora/client/cli/test_quota.py      |  3 +-
 .../apache/aurora/client/cli/test_restart.py    |  3 +-
 .../python/apache/aurora/client/cli/test_sla.py |  3 +-
 .../apache/aurora/client/cli/test_status.py     |  3 +-
 .../apache/aurora/client/cli/test_supdate.py    |  3 +-
 .../apache/aurora/client/cli/test_task_run.py   |  3 +-
 .../apache/aurora/client/cli/test_update.py     |  3 +-
 .../apache/aurora/client/commands/__init__.py   | 13 +++++++
 .../apache/aurora/client/commands/test_admin.py |  3 +-
 .../aurora/client/commands/test_admin_sla.py    |  3 +-
 .../client/commands/test_cancel_update.py       |  3 +-
 .../aurora/client/commands/test_create.py       |  3 +-
 .../apache/aurora/client/commands/test_diff.py  |  3 +-
 .../apache/aurora/client/commands/test_hooks.py |  3 +-
 .../apache/aurora/client/commands/test_kill.py  |  3 +-
 .../aurora/client/commands/test_listjobs.py     |  3 +-
 .../aurora/client/commands/test_maintenance.py  |  3 +-
 .../aurora/client/commands/test_restart.py      |  3 +-
 .../apache/aurora/client/commands/test_run.py   |  3 +-
 .../apache/aurora/client/commands/test_ssh.py   |  3 +-
 .../aurora/client/commands/test_status.py       |  3 +-
 .../aurora/client/commands/test_update.py       |  3 +-
 .../apache/aurora/executor/common/__init__.py   | 13 +++++++
 .../executor/common/test_health_checker.py      |  3 +-
 .../aurora/executor/common/test_task_info.py    |  3 +-
 .../aurora/executor/test_executor_builds.py     |  8 ++++
 47 files changed, 181 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index f551c88..ec072d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,5 @@
 /dist/*
 /gradle-app.setting
 /out/*
+/requirements.txt
 /third_party/*

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/build-support/python/make-pycharm-virtualenv
----------------------------------------------------------------------
diff --git a/build-support/python/make-pycharm-virtualenv b/build-support/python/make-pycharm-virtualenv
new file mode 100755
index 0000000..0e7b97e
--- /dev/null
+++ b/build-support/python/make-pycharm-virtualenv
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Wrapper for genearing PyCharm-compatible virtualenv.
+set -e
+
+HERE=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)
+BUILDROOT=$HERE/../..
+
+pushd "$BUILDROOT"
+  ./pants goal dependencies --dependencies-external src/test/python:all > requirements.txt
+  ./pants setup_py src/main/thrift/org/apache/aurora/gen:py-thrift-packaged
+  ./pants setup_py src/main/thrift/org/apache/thermos:py-thrift
+  source build-support/pants.venv/bin/activate
+    pytest_requirement=$(pip freeze | grep pytest==)
+    pytest_cov_requirement=$(pip freeze | grep pytest-cov==)
+  deactivate
+  rm -rf build-support/python/pycharm.venv
+  ./build-support/virtualenv build-support/python/pycharm.venv
+  source build-support/python/pycharm.venv/bin/activate
+    # NOTE: PyCharm navigation (ctrl-click) doesn't work without --egg - it gets confused by
+    # the namespace packages in twitter.common.
+    pip install --egg -r requirements.txt
+    pip install --egg -f dist \
+      apache.gen.aurora==$(< .auroraversion) \
+      apache.gen.thermos==$(<.auroraversion)
+    # Use same py.test version embedded into pants
+    pip install $pytest_requirement $pytest_cov_requirement
+  deactivate
+popd

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/main/python/apache/aurora/client/cli/__init__.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/cli/__init__.py b/src/main/python/apache/aurora/client/cli/__init__.py
index 376106c..67cf403 100644
--- a/src/main/python/apache/aurora/client/cli/__init__.py
+++ b/src/main/python/apache/aurora/client/cli/__init__.py
@@ -40,6 +40,7 @@ import time
 import traceback
 from abc import abstractmethod
 from uuid import uuid1
+from zipfile import BadZipfile
 
 from twitter.common.python.pex import PexInfo
 
@@ -93,7 +94,7 @@ def get_client_version():
     pex_info = PexInfo.from_pex(pexpath)
     return ("%s@%s" % (pex_info.build_properties.get("sha", "unknown"),
         pex_info.build_properties.get("date", "unknown")))
-  except (IOError, OSError):
+  except (BadZipfile, IOError, OSError):
     return "VersionUnknown"
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/main/python/apache/aurora/executor/executor_vars.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/executor/executor_vars.py b/src/main/python/apache/aurora/executor/executor_vars.py
index 908d89f..7c01827 100644
--- a/src/main/python/apache/aurora/executor/executor_vars.py
+++ b/src/main/python/apache/aurora/executor/executor_vars.py
@@ -14,6 +14,7 @@
 
 import os
 import time
+from zipfile import BadZipfile
 
 import psutil
 from twitter.common.exceptions import ExceptionalThread
@@ -57,7 +58,7 @@ class ExecutorVars(Observable, ExceptionalThread):
     try:
       pex_info = PexInfo.from_pex(binary)
       return cls.get_release_from_tag(pex_info.build_properties.get('tag', ''))
-    except (IOError, OSError):
+    except (BadZipfile, IOError, OSError):
       return 'UNKNOWN'
 
   def __init__(self, clock=time):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/api/__init__.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/api/__init__.py b/src/test/python/apache/aurora/client/api/__init__.py
new file mode 100644
index 0000000..0663a9a
--- /dev/null
+++ b/src/test/python/apache/aurora/client/api/__init__.py
@@ -0,0 +1,13 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/api/test_restarter.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/api/test_restarter.py b/src/test/python/apache/aurora/client/api/test_restarter.py
index 2b264de..eb0af3b 100644
--- a/src/test/python/apache/aurora/client/api/test_restarter.py
+++ b/src/test/python/apache/aurora/client/api/test_restarter.py
@@ -17,10 +17,11 @@ from mox import IgnoreArg, MoxTestBase
 from apache.aurora.client.api.instance_watcher import InstanceWatcher
 from apache.aurora.client.api.restarter import Restarter
 from apache.aurora.client.api.updater_util import UpdaterConfig
-from apache.aurora.client.fake_scheduler_proxy import FakeSchedulerProxy
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 from apache.aurora.common.cluster import Cluster
 
+from ..fake_scheduler_proxy import FakeSchedulerProxy
+
 from gen.apache.aurora.api.AuroraSchedulerManager import Client as scheduler_client
 from gen.apache.aurora.api.constants import THRIFT_API_VERSION
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/api/test_updater.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/api/test_updater.py b/src/test/python/apache/aurora/client/api/test_updater.py
index a10e05c..a32fc52 100644
--- a/src/test/python/apache/aurora/client/api/test_updater.py
+++ b/src/test/python/apache/aurora/client/api/test_updater.py
@@ -24,10 +24,11 @@ from apache.aurora.client.api.job_monitor import JobMonitor
 from apache.aurora.client.api.quota_check import CapacityRequest, QuotaCheck
 from apache.aurora.client.api.scheduler_mux import SchedulerMux
 from apache.aurora.client.api.updater import Updater
-from apache.aurora.client.fake_scheduler_proxy import FakeSchedulerProxy
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 from apache.aurora.common.cluster import Cluster
 
+from ..fake_scheduler_proxy import FakeSchedulerProxy
+
 from gen.apache.aurora.api.AuroraSchedulerManager import Client as scheduler_client
 from gen.apache.aurora.api.constants import ACTIVE_STATES, THRIFT_API_VERSION
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/__init__.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/__init__.py b/src/test/python/apache/aurora/client/cli/__init__.py
new file mode 100644
index 0000000..0663a9a
--- /dev/null
+++ b/src/test/python/apache/aurora/client/cli/__init__.py
@@ -0,0 +1,13 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_api_from_cli.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_api_from_cli.py b/src/test/python/apache/aurora/client/cli/test_api_from_cli.py
index 4de8bb4..3e7006e 100644
--- a/src/test/python/apache/aurora/client/cli/test_api_from_cli.py
+++ b/src/test/python/apache/aurora/client/cli/test_api_from_cli.py
@@ -19,7 +19,8 @@ from mock import Mock, patch
 from apache.aurora.client.api.scheduler_client import SchedulerClient
 from apache.aurora.client.cli import EXIT_UNKNOWN_ERROR
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api import AuroraAdmin
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_cancel_update.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_cancel_update.py b/src/test/python/apache/aurora/client/cli/test_cancel_update.py
index e705246..fb5a527 100644
--- a/src/test/python/apache/aurora/client/cli/test_cancel_update.py
+++ b/src/test/python/apache/aurora/client/cli/test_cancel_update.py
@@ -18,9 +18,10 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import JobKey, ScheduleStatus, ScheduleStatusResult, TaskQuery
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_command_hooks.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_command_hooks.py b/src/test/python/apache/aurora/client/cli/test_command_hooks.py
index 60c7530..eb4d413 100644
--- a/src/test/python/apache/aurora/client/cli/test_command_hooks.py
+++ b/src/test/python/apache/aurora/client/cli/test_command_hooks.py
@@ -20,9 +20,10 @@ from twitter.common.contextutil import temporary_file
 from apache.aurora.client.cli import EXIT_PERMISSION_VIOLATION
 from apache.aurora.client.cli.client import AuroraCommandLine
 from apache.aurora.client.cli.command_hooks import CommandHook, GlobalCommandHookRegistry
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_config_noun.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_config_noun.py b/src/test/python/apache/aurora/client/cli/test_config_noun.py
index dfcbd72..d82a69d 100644
--- a/src/test/python/apache/aurora/client/cli/test_config_noun.py
+++ b/src/test/python/apache/aurora/client/cli/test_config_noun.py
@@ -19,7 +19,8 @@ from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli import EXIT_COMMAND_FAILURE
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
+
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
 
 
 class TestClientCreateCommand(AuroraClientCommandTest):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_create.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_create.py b/src/test/python/apache/aurora/client/cli/test_create.py
index a56d8b9..6013fa1 100644
--- a/src/test/python/apache/aurora/client/cli/test_create.py
+++ b/src/test/python/apache/aurora/client/cli/test_create.py
@@ -27,9 +27,10 @@ from apache.aurora.client.cli import (
     EXIT_UNKNOWN_ERROR
 )
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_cron.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_cron.py b/src/test/python/apache/aurora/client/cli/test_cron.py
index c7b71c2..b84bbfc 100644
--- a/src/test/python/apache/aurora/client/cli/test_cron.py
+++ b/src/test/python/apache/aurora/client/cli/test_cron.py
@@ -21,9 +21,10 @@ from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli import EXIT_API_ERROR, EXIT_INVALID_CONFIGURATION, EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import JobKey
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_diff.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_diff.py b/src/test/python/apache/aurora/client/cli/test_diff.py
index 78694d7..f7c07f2 100644
--- a/src/test/python/apache/aurora/client/cli/test_diff.py
+++ b/src/test/python/apache/aurora/client/cli/test_diff.py
@@ -20,7 +20,8 @@ from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli import EXIT_INVALID_CONFIGURATION, EXIT_INVALID_PARAMETER
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.constants import ACTIVE_STATES
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_help.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_help.py b/src/test/python/apache/aurora/client/cli/test_help.py
index 551c9f9..1576edc 100644
--- a/src/test/python/apache/aurora/client/cli/test_help.py
+++ b/src/test/python/apache/aurora/client/cli/test_help.py
@@ -55,6 +55,7 @@ class TestHelp(unittest.TestCase):
     with patch('apache.aurora.client.cli.client.AuroraCommandLine.print_out',
         side_effect=self.mock_print):
       self.cmd.execute(['help'])
+      print(self.transcript)
       assert len(self.transcript) > 10
       assert self.transcript[1] == 'Usage:'
       assert '==Commands for jobs' in self.transcript

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_inspect.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_inspect.py b/src/test/python/apache/aurora/client/cli/test_inspect.py
index e997b97..b5b949b 100644
--- a/src/test/python/apache/aurora/client/cli/test_inspect.py
+++ b/src/test/python/apache/aurora/client/cli/test_inspect.py
@@ -18,9 +18,10 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.ttypes import CronCollisionPolicy
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_kill.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_kill.py b/src/test/python/apache/aurora/client/cli/test_kill.py
index f7601d8..6f5b1bb 100644
--- a/src/test/python/apache/aurora/client/cli/test_kill.py
+++ b/src/test/python/apache/aurora/client/cli/test_kill.py
@@ -21,9 +21,10 @@ from twitter.common.contextutil import temporary_file
 from apache.aurora.client.cli import EXIT_TIMEOUT
 from apache.aurora.client.cli.client import AuroraCommandLine
 from apache.aurora.client.cli.options import parse_instances
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import JobKey, ScheduleStatus, ScheduleStatusResult, TaskQuery
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_logging.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_logging.py b/src/test/python/apache/aurora/client/cli/test_logging.py
index 9ca4dce..10fa015 100644
--- a/src/test/python/apache/aurora/client/cli/test_logging.py
+++ b/src/test/python/apache/aurora/client/cli/test_logging.py
@@ -19,9 +19,10 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     ScheduledTask,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_open.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_open.py b/src/test/python/apache/aurora/client/cli/test_open.py
index c20649f..92f9c3d 100644
--- a/src/test/python/apache/aurora/client/cli/test_open.py
+++ b/src/test/python/apache/aurora/client/cli/test_open.py
@@ -16,7 +16,8 @@ from mock import patch
 
 from apache.aurora.client.cli import EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
+
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
 
 
 class TestClientOpenCommand(AuroraClientCommandTest):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_plugins.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_plugins.py b/src/test/python/apache/aurora/client/cli/test_plugins.py
index dc5edd4..0b29346 100644
--- a/src/test/python/apache/aurora/client/cli/test_plugins.py
+++ b/src/test/python/apache/aurora/client/cli/test_plugins.py
@@ -20,9 +20,10 @@ from twitter.common.contextutil import temporary_file
 from apache.aurora.client.cli import ConfigurationPlugin, EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
 from apache.aurora.client.cli.options import CommandOption
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_quota.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_quota.py b/src/test/python/apache/aurora/client/cli/test_quota.py
index 88fb9ae..6e38227 100644
--- a/src/test/python/apache/aurora/client/cli/test_quota.py
+++ b/src/test/python/apache/aurora/client/cli/test_quota.py
@@ -18,7 +18,8 @@ import json
 from mock import patch
 
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
+
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
 
 from gen.apache.aurora.api.ttypes import GetQuotaResult, ResourceAggregate
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_restart.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_restart.py b/src/test/python/apache/aurora/client/cli/test_restart.py
index a753ab4..ff70264 100644
--- a/src/test/python/apache/aurora/client/cli/test_restart.py
+++ b/src/test/python/apache/aurora/client/cli/test_restart.py
@@ -20,7 +20,8 @@ from twitter.common.contextutil import temporary_file
 from apache.aurora.client.api.health_check import Retriable, StatusHealthCheck
 from apache.aurora.client.cli import EXIT_API_ERROR, EXIT_INVALID_PARAMETER
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, IOMock
+
+from .util import AuroraClientCommandTest, IOMock
 
 from gen.apache.aurora.api.ttypes import JobKey, PopulateJobResult, TaskConfig
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_sla.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_sla.py b/src/test/python/apache/aurora/client/cli/test_sla.py
index a1a3d81..a7bfd35 100644
--- a/src/test/python/apache/aurora/client/cli/test_sla.py
+++ b/src/test/python/apache/aurora/client/cli/test_sla.py
@@ -17,7 +17,8 @@ import contextlib
 from mock import Mock, patch
 
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
+
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
 
 
 class TestGetTaskUpCountCommand(AuroraClientCommandTest):

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_status.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_status.py b/src/test/python/apache/aurora/client/cli/test_status.py
index 8894a1e..6b2f18b 100644
--- a/src/test/python/apache/aurora/client/cli/test_status.py
+++ b/src/test/python/apache/aurora/client/cli/test_status.py
@@ -20,9 +20,10 @@ from mock import patch
 
 from apache.aurora.client.cli import EXIT_INVALID_PARAMETER, EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     GetJobsResult,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_supdate.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_supdate.py b/src/test/python/apache/aurora/client/cli/test_supdate.py
index f3fa6cf..bf979e2 100644
--- a/src/test/python/apache/aurora/client/cli/test_supdate.py
+++ b/src/test/python/apache/aurora/client/cli/test_supdate.py
@@ -19,10 +19,11 @@ from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.cli import EXIT_API_ERROR, EXIT_INVALID_CONFIGURATION, EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext
+
 from gen.apache.aurora.api.ttypes import (
     GetJobUpdateDetailsResult,
     GetJobUpdateSummariesResult,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_task_run.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_task_run.py b/src/test/python/apache/aurora/client/cli/test_task_run.py
index 12163df..8458606 100644
--- a/src/test/python/apache/aurora/client/cli/test_task_run.py
+++ b/src/test/python/apache/aurora/client/cli/test_task_run.py
@@ -18,7 +18,8 @@ from mock import Mock, patch
 
 from apache.aurora.client.cli import EXIT_INVALID_PARAMETER
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import (
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/cli/test_update.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/cli/test_update.py b/src/test/python/apache/aurora/client/cli/test_update.py
index 08f277e..840cde9 100644
--- a/src/test/python/apache/aurora/client/cli/test_update.py
+++ b/src/test/python/apache/aurora/client/cli/test_update.py
@@ -23,9 +23,10 @@ from apache.aurora.client.api.quota_check import QuotaCheck
 from apache.aurora.client.api.scheduler_mux import SchedulerMux
 from apache.aurora.client.cli import EXIT_INVALID_CONFIGURATION, EXIT_OK
 from apache.aurora.client.cli.client import AuroraCommandLine
-from apache.aurora.client.cli.util import AuroraClientCommandTest, FakeAuroraCommandContext, IOMock
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest, FakeAuroraCommandContext, IOMock
+
 from gen.apache.aurora.api.constants import ACTIVE_STATES
 from gen.apache.aurora.api.ttypes import (
     AcquireLockResult,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/__init__.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/__init__.py b/src/test/python/apache/aurora/client/commands/__init__.py
new file mode 100644
index 0000000..0663a9a
--- /dev/null
+++ b/src/test/python/apache/aurora/client/commands/__init__.py
@@ -0,0 +1,13 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_admin.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_admin.py b/src/test/python/apache/aurora/client/commands/test_admin.py
index 769545b..cae5395 100644
--- a/src/test/python/apache/aurora/client/commands/test_admin.py
+++ b/src/test/python/apache/aurora/client/commands/test_admin.py
@@ -25,7 +25,8 @@ from apache.aurora.client.commands.admin import (
     query,
     set_quota
 )
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_admin_sla.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_admin_sla.py b/src/test/python/apache/aurora/client/commands/test_admin_sla.py
index 994b123..a565318 100644
--- a/src/test/python/apache/aurora/client/commands/test_admin_sla.py
+++ b/src/test/python/apache/aurora/client/commands/test_admin_sla.py
@@ -22,9 +22,10 @@ from apache.aurora.client.api import AuroraClientAPI
 from apache.aurora.client.api.sla import DomainUpTimeSlaVector, JobUpTimeDetails, JobUpTimeLimit
 from apache.aurora.client.base import DEFAULT_GROUPING
 from apache.aurora.client.commands.admin import sla_list_safe_domain, sla_probe_hosts
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest
+
 MIN_INSTANCE_COUNT = 1
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_cancel_update.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_cancel_update.py b/src/test/python/apache/aurora/client/commands/test_cancel_update.py
index 13aa1fe..5d2a789 100644
--- a/src/test/python/apache/aurora/client/commands/test_cancel_update.py
+++ b/src/test/python/apache/aurora/client/commands/test_cancel_update.py
@@ -18,9 +18,10 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.commands.core import cancel_update
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.ttypes import JobKey, ScheduleStatus, ScheduleStatusResult, TaskQuery
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_create.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_create.py b/src/test/python/apache/aurora/client/commands/test_create.py
index 4a753fb..be69ed5 100644
--- a/src/test/python/apache/aurora/client/commands/test_create.py
+++ b/src/test/python/apache/aurora/client/commands/test_create.py
@@ -19,9 +19,10 @@ from pystachio.config import Config
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.commands.core import create
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_diff.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_diff.py b/src/test/python/apache/aurora/client/commands/test_diff.py
index 9f1d459..9a486c3 100644
--- a/src/test/python/apache/aurora/client/commands/test_diff.py
+++ b/src/test/python/apache/aurora/client/commands/test_diff.py
@@ -20,7 +20,8 @@ from pystachio.config import Config
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.commands.core import diff
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.constants import ACTIVE_STATES
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_hooks.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_hooks.py b/src/test/python/apache/aurora/client/commands/test_hooks.py
index d4d8d3c..638fba6 100644
--- a/src/test/python/apache/aurora/client/commands/test_hooks.py
+++ b/src/test/python/apache/aurora/client/commands/test_hooks.py
@@ -18,10 +18,11 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.commands.core import create
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.client.config import AuroraConfig, GlobalHookRegistry
 from apache.aurora.client.hooks.hooked_api import HookedAuroraClientAPI
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     ScheduledTask,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_kill.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_kill.py b/src/test/python/apache/aurora/client/commands/test_kill.py
index 1e13b92..8194c96 100644
--- a/src/test/python/apache/aurora/client/commands/test_kill.py
+++ b/src/test/python/apache/aurora/client/commands/test_kill.py
@@ -18,9 +18,10 @@ from mock import Mock, patch
 from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.commands.core import CoreCommandHook, kill, killall
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.common.aurora_job_key import AuroraJobKey
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,
     JobKey,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_listjobs.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_listjobs.py b/src/test/python/apache/aurora/client/commands/test_listjobs.py
index f2a325e..d9fa617 100644
--- a/src/test/python/apache/aurora/client/commands/test_listjobs.py
+++ b/src/test/python/apache/aurora/client/commands/test_listjobs.py
@@ -17,7 +17,8 @@ import contextlib
 from mock import Mock, patch
 
 from apache.aurora.client.commands.core import list_jobs
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import GetJobsResult, JobKey
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_maintenance.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_maintenance.py b/src/test/python/apache/aurora/client/commands/test_maintenance.py
index 13d753f..20eecc0 100644
--- a/src/test/python/apache/aurora/client/commands/test_maintenance.py
+++ b/src/test/python/apache/aurora/client/commands/test_maintenance.py
@@ -24,7 +24,8 @@ from apache.aurora.client.commands.maintenance import (
     host_drain,
     host_status
 )
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import (
     DrainHostsResult,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_restart.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_restart.py b/src/test/python/apache/aurora/client/commands/test_restart.py
index efa0849..6da9e73 100644
--- a/src/test/python/apache/aurora/client/commands/test_restart.py
+++ b/src/test/python/apache/aurora/client/commands/test_restart.py
@@ -20,7 +20,8 @@ from twitter.common.contextutil import temporary_file
 
 from apache.aurora.client.api.health_check import Retriable, StatusHealthCheck
 from apache.aurora.client.commands.core import restart
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_run.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_run.py b/src/test/python/apache/aurora/client/commands/test_run.py
index 0c395f7..738a42b 100644
--- a/src/test/python/apache/aurora/client/commands/test_run.py
+++ b/src/test/python/apache/aurora/client/commands/test_run.py
@@ -17,7 +17,8 @@ import contextlib
 from mock import Mock, patch
 
 from apache.aurora.client.commands.run import run
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.constants import LIVE_STATES
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_ssh.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_ssh.py b/src/test/python/apache/aurora/client/commands/test_ssh.py
index cf9f425..6d51bb3 100644
--- a/src/test/python/apache/aurora/client/commands/test_ssh.py
+++ b/src/test/python/apache/aurora/client/commands/test_ssh.py
@@ -17,7 +17,8 @@ import contextlib
 from mock import Mock, patch
 
 from apache.aurora.client.commands.ssh import ssh
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.constants import LIVE_STATES
 from gen.apache.aurora.api.ttypes import (

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_status.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_status.py b/src/test/python/apache/aurora/client/commands/test_status.py
index 9eb8def..062b132 100644
--- a/src/test/python/apache/aurora/client/commands/test_status.py
+++ b/src/test/python/apache/aurora/client/commands/test_status.py
@@ -17,7 +17,8 @@ import contextlib
 from mock import Mock, patch
 
 from apache.aurora.client.commands.core import status
-from apache.aurora.client.commands.util import AuroraClientCommandTest
+
+from .util import AuroraClientCommandTest
 
 from gen.apache.aurora.api.ttypes import (
     AssignedTask,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/client/commands/test_update.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/client/commands/test_update.py b/src/test/python/apache/aurora/client/commands/test_update.py
index 555ea0d..e359d32 100644
--- a/src/test/python/apache/aurora/client/commands/test_update.py
+++ b/src/test/python/apache/aurora/client/commands/test_update.py
@@ -24,9 +24,10 @@ from apache.aurora.client.api.quota_check import QuotaCheck
 from apache.aurora.client.api.scheduler_mux import SchedulerMux
 from apache.aurora.client.api.updater import Updater
 from apache.aurora.client.commands.core import update
-from apache.aurora.client.commands.util import AuroraClientCommandTest
 from apache.aurora.config import AuroraConfig
 
+from .util import AuroraClientCommandTest
+
 from gen.apache.aurora.api.constants import ACTIVE_STATES
 from gen.apache.aurora.api.ttypes import (
     AcquireLockResult,

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/executor/common/__init__.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/executor/common/__init__.py b/src/test/python/apache/aurora/executor/common/__init__.py
new file mode 100644
index 0000000..0663a9a
--- /dev/null
+++ b/src/test/python/apache/aurora/executor/common/__init__.py
@@ -0,0 +1,13 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/executor/common/test_health_checker.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/executor/common/test_health_checker.py b/src/test/python/apache/aurora/executor/common/test_health_checker.py
index 2be5b6c..def249c 100644
--- a/src/test/python/apache/aurora/executor/common/test_health_checker.py
+++ b/src/test/python/apache/aurora/executor/common/test_health_checker.py
@@ -24,7 +24,6 @@ from twitter.common.testing.clock import ThreadedClock
 
 from apache.aurora.common.http_signaler import HttpSignaler
 from apache.aurora.config.schema.base import HealthCheckConfig
-from apache.aurora.executor.common.fixtures import HELLO_WORLD, MESOS_JOB
 from apache.aurora.executor.common.health_checker import (
     HealthChecker,
     HealthCheckerProvider,
@@ -32,6 +31,8 @@ from apache.aurora.executor.common.health_checker import (
 )
 from apache.aurora.executor.common.sandbox import SandboxInterface
 
+from .fixtures import HELLO_WORLD, MESOS_JOB
+
 from gen.apache.aurora.api.ttypes import AssignedTask, ExecutorConfig, TaskConfig
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/executor/common/test_task_info.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/executor/common/test_task_info.py b/src/test/python/apache/aurora/executor/common/test_task_info.py
index c4fe905..8f71717 100644
--- a/src/test/python/apache/aurora/executor/common/test_task_info.py
+++ b/src/test/python/apache/aurora/executor/common/test_task_info.py
@@ -12,9 +12,10 @@
 # limitations under the License.
 #
 
-from apache.aurora.executor.common.fixtures import BASE_MTI, HELLO_WORLD, HELLO_WORLD_MTI, MESOS_JOB
 from apache.aurora.executor.common.task_info import mesos_task_instance_from_assigned_task
 
+from .fixtures import BASE_MTI, HELLO_WORLD, HELLO_WORLD_MTI, MESOS_JOB
+
 from gen.apache.aurora.api.ttypes import AssignedTask, ExecutorConfig, TaskConfig
 
 

http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/349a76dc/src/test/python/apache/aurora/executor/test_executor_builds.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/executor/test_executor_builds.py b/src/test/python/apache/aurora/executor/test_executor_builds.py
index 88368f8..be6800f 100644
--- a/src/test/python/apache/aurora/executor/test_executor_builds.py
+++ b/src/test/python/apache/aurora/executor/test_executor_builds.py
@@ -14,6 +14,8 @@
 
 import subprocess
 
+import pytest
+
 
 def build_and_execute_pex_target(target, binary):
   assert subprocess.call(["./pants", target]) == 0
@@ -25,11 +27,17 @@ def build_and_execute_pex_target(target, binary):
   assert so.startswith('Options'), 'Unexpected build output: %s' % so
 
 
+# TODO(ksweeney): Unignore when mesos.native is pip-installable
+# (https://issues.apache.org/jira/browse/MESOS-684).
+@pytest.mark.skipif("True")
 def test_thermos_executor_build():
   build_and_execute_pex_target('src/main/python/apache/aurora/executor/bin:thermos_executor',
                                'dist/thermos_executor.pex')
 
 
+# TODO(ksweeney): Unignore when mesos.native is pip-installable
+# (https://issues.apache.org/jira/browse/MESOS-684).
+@pytest.mark.skipif("True")
 def test_gc_executor_build():
   build_and_execute_pex_target('src/main/python/apache/aurora/executor/bin:gc_executor',
                                'dist/gc_executor.pex')