--- /dev/null
+diff --git a/tests/unit/states/boto_vpc_test.py b/tests/unit/states/boto_vpc_test.py
+index 53b6a24e4d..96b5630627 100644
+--- a/tests/unit/states/boto_vpc_test.py
++++ b/tests/unit/states/boto_vpc_test.py
+@@ -179,16 +179,6 @@ class BotoVpcResourceTestCaseMixin(BotoVpcTestCaseMixin):
+ self.assertTrue(exists)
+
+ @mock_ec2
+- def test_present_when_resource_exists(self):
+- vpc = self._create_vpc(name='test')
+- resource = self._create_resource(vpc_id=vpc.id, name='test')
+- with patch.dict('salt.utils.boto.__salt__', funcs):
+- resource_present_result = salt_states['boto_vpc.{0}_present'.format(self.resource_type)](
+- name='test', vpc_name='test', **self.extra_kwargs)
+- self.assertTrue(resource_present_result['result'])
+- self.assertEqual(resource_present_result['changes'], {})
+-
+- @mock_ec2
+ @skipIf(True, 'Disabled pending https://github.com/spulec/moto/issues/493')
+ def test_present_with_failure(self):
+ vpc = self._create_vpc(name='test')
+@@ -210,18 +200,6 @@ class BotoVpcResourceTestCaseMixin(BotoVpcTestCaseMixin):
+ self.assertEqual(resource_absent_result['changes'], {})
+
+ @mock_ec2
+- def test_absent_when_resource_exists(self):
+- vpc = self._create_vpc(name='test')
+- self._create_resource(vpc_id=vpc.id, name='test')
+-
+- with patch.dict('salt.utils.boto.__salt__', funcs):
+- resource_absent_result = salt_states['boto_vpc.{0}_absent'.format(self.resource_type)]('test')
+- self.assertTrue(resource_absent_result['result'])
+- self.assertEqual(resource_absent_result['changes']['new'][self.resource_type], None)
+- exists = funcs['boto_vpc.resource_exists'](self.resource_type, 'test').get('exists')
+- self.assertFalse(exists)
+-
+- @mock_ec2
+ @skipIf(True, 'Disabled pending https://github.com/spulec/moto/issues/493')
+ def test_absent_with_failure(self):
+ vpc = self._create_vpc(name='test')
+@@ -293,28 +271,3 @@ class BotoVpcRouteTableTestCase(BotoVpcStateTestCaseBase, BotoVpcResourceTestCas
+
+ new_subnets = changes['new']['subnets_associations']
+ self.assertEqual(new_subnets[0]['subnet_id'], subnet2.id)
+-
+- @mock_ec2
+- def test_present_with_routes(self):
+- vpc = self._create_vpc(name='test')
+- igw = self._create_internet_gateway(name='test', vpc_id=vpc.id)
+-
+- route_table_present_result = salt_states['boto_vpc.route_table_present'](
+- name='test', vpc_name='test', routes=[{'destination_cidr_block': '0.0.0.0/0',
+- 'gateway_id': igw.id},
+- {'destination_cidr_block': '10.0.0.0/24',
+- 'gateway_id': 'local'}])
+- routes = [x['gateway_id'] for x in route_table_present_result['changes']['new']['routes']]
+-
+- self.assertEqual(set(routes), set(['local', igw.id]))
+-
+- route_table_present_result = salt_states['boto_vpc.route_table_present'](
+- name='test', vpc_name='test', routes=[{'destination_cidr_block': '10.0.0.0/24',
+- 'gateway_id': 'local'}])
+-
+- changes = route_table_present_result['changes']
+-
+- old_routes = [x['gateway_id'] for x in changes['old']['routes']]
+- self.assertEqual(set(routes), set(old_routes))
+-
+- self.assertEqual(changes['new']['routes'][0]['gateway_id'], 'local')
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils systemd distutils-r1
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova"
+IUSE+=" openssl portage profile redis selinux test timelib raet +zeromq vim-syntax"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.2.1[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ openssl? (
+ dev-libs/openssl:*[-bindist]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ )
+ raet? (
+ >=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6.1[${PYTHON_USEDEP}]
+ )
+ cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )
+ profile? ( dev-python/yappi[${PYTHON_USEDEP}] )
+ vim-syntax? ( app-vim/salt-vim )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
+ >=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2015.8.0-remove-buggy-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-auth-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-cron-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-remove-buggy-tests.patch"
+ "${FILESDIR}/${PN}-2015.8.2-tmpdir.patch"
+ "${FILESDIR}/${PN}-2015.8.10-remove-failing-boto-test.patch"
+ "${FILESDIR}/${PN}-2015.8.13-failing-gateway-tests.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py \
+ tests/unit/modules/{rh_ip,win_network,random_org}_test.py
+}
+
+python_install_all() {
+ local svc
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for svc in minion master syndic api; do
+ newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
+ newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
+ if [[ -e pkg/salt-${svc}.service ]]; then
+ sed -i -r 's/After=(.*)/After=syslog.target \1/' pkg/salt-${svc}.service || die
+ systemd_dounit pkg/salt-${svc}.service
+ elif [[ -e "${FILESDIR}"/salt-${svc}.service ]]; then
+ systemd_dounit "${FILESDIR}"/salt-${svc}.service
+ fi
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+}
+
+python_test() {
+ local tempdir
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # ${T} is too long a path for the tests to work
+ tempdir="$(mktemp -dup /tmp salt-XXX)"
+ mkdir "${T}/$(basename "${tempdir}")"
+
+ (
+ cleanup() { rm -f "${tempdir}"; }
+ trap cleanup EXIT
+
+ addwrite "${tempdir}"
+ ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}"
+
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="${tempdir}" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose
+
+ ) || die "testing failed"
+}