Skip to content

Commit

Permalink
1. python-keystoneclient latest has moved middleware to keystonemiddl…
Browse files Browse the repository at this point in the history
…eware.

fixing it in unit-test and code. Also detecting failure of .venv building
is broken so invoke testr run with pipefail.
2. Also clearing pip cache entry for contrail python packages before installing
requiements in VENV.
3. Removing distribute from test-requirements, becaause distribute is deprecated
in favour of setuptools
4. fixed test failues in test_perms2 test module

Closes-Bug: 1549065
Change-Id: Iabc8231eb1b6e0051e07744621440ddb0f828164
  • Loading branch information
cijohnson committed Mar 3, 2016
1 parent fd9579d commit 2bb8aba
Show file tree
Hide file tree
Showing 32 changed files with 142 additions and 90 deletions.
1 change: 0 additions & 1 deletion src/analytics/contrail-broadview/test-requirements.txt
Expand Up @@ -16,7 +16,6 @@ mock==1.0.1
kafka-python==0.9.2
kazoo
stevedore
distribute>=0.7.3
../opserver
../sandesh/common/dist/sandesh-common-0.1dev.tar.gz
../tools/sandesh/library/python/dist/sandesh-0.1dev.tar.gz
Expand Down
Expand Up @@ -9,7 +9,6 @@ mock==1.0.1
kafka-python==0.9.2
kazoo
stevedore
distribute>=0.7.3
../opserver
../sandesh/common/dist/sandesh-common-0.1dev.tar.gz
../tools/sandesh/library/python/dist/sandesh-0.1dev.tar.gz
Expand Down
1 change: 0 additions & 1 deletion src/analytics/contrail-topology/test-requirements.txt
Expand Up @@ -16,7 +16,6 @@ mock==1.0.1
kafka-python==0.9.2
kazoo
stevedore
distribute>=0.7.3
../opserver
../sandesh/common/dist/sandesh-common-0.1dev.tar.gz
../tools/sandesh/library/python/dist/sandesh-0.1dev.tar.gz
Expand Down
4 changes: 2 additions & 2 deletions src/api-lib/run_tests.sh
Expand Up @@ -148,9 +148,9 @@ function run_tests {
then
# subunit-2to1 is present, testr subunit stream should be in version 2
# format. Convert to version one before colorizing.
bash -c "${wrapper} $TESTRTESTS | ${wrapper} subunit-2to1 | ${wrapper} ${tools_path}/tools/colorizer.py"
bash -c "set -o pipefail && ${wrapper} $TESTRTESTS | ${wrapper} subunit-2to1 | ${wrapper} ${tools_path}/tools/colorizer.py"
else
bash -c "${wrapper} $TESTRTESTS | ${wrapper} ${tools_path}/tools/colorizer.py"
bash -c "set -o pipefail && ${wrapper} $TESTRTESTS | ${wrapper} ${tools_path}/tools/colorizer.py"
fi
RESULT=$?
set -e
Expand Down
4 changes: 3 additions & 1 deletion src/api-lib/setup.py
Expand Up @@ -22,7 +22,9 @@ def run(self):
if self.coverage:
logfname = 'coveragetest.log'
args += ' -c'
os.system('./run_tests.sh %s' % args)
rc_sig = os.system('./run_tests.sh %s' % args)
if rc_sig >> 8:
os._exit(rc_sig>>8)
with open(logfname) as f:
if not re.search('\nOK', ''.join(f.readlines())):
os._exit(1)
Expand Down
1 change: 0 additions & 1 deletion src/api-lib/test-requirements.txt
Expand Up @@ -4,5 +4,4 @@ flexmock
coverage
pyaml
httpretty==0.8.10
distribute>=0.7.3

4 changes: 2 additions & 2 deletions src/config/api-server/run_tests.sh
Expand Up @@ -153,9 +153,9 @@ function run_tests {
then
# subunit-2to1 is present, testr subunit stream should be in version 2
# format. Convert to version one before colorizing.
bash -c "${wrapper} $TESTRTESTS | ${wrapper} subunit-2to1 | ${wrapper} ${tools_path}/tools/colorizer.py"
bash -c "set -o pipefail && ${wrapper} $TESTRTESTS | ${wrapper} subunit-2to1 | ${wrapper} ${tools_path}/tools/colorizer.py"
else
bash -c "${wrapper} $TESTRTESTS | ${wrapper} ${tools_path}/tools/colorizer.py"
bash -c "set -o pipefail && ${wrapper} $TESTRTESTS | ${wrapper} ${tools_path}/tools/colorizer.py"
fi
RESULT=$?
set -e
Expand Down
4 changes: 3 additions & 1 deletion src/config/api-server/setup.py
Expand Up @@ -22,7 +22,9 @@ def run(self):
if self.coverage:
logfname = 'coveragetest.log'
args += ' -c'
os.system('./run_tests.sh %s' % args)
rc_sig = os.system('./run_tests.sh %s' % args)
if rc_sig >> 8:
os._exit(rc_sig>>8)
with open(logfname) as f:
if not re.search('\nOK', ''.join(f.readlines())):
os._exit(1)
Expand Down
1 change: 1 addition & 0 deletions src/config/api-server/test-requirements.txt
Expand Up @@ -6,3 +6,4 @@ coverage
webtest
pyaml
distribute>=0.7.3
keystonemiddleware
24 changes: 14 additions & 10 deletions src/config/api-server/tests/test_crud_basic.py
Expand Up @@ -1023,7 +1023,7 @@ def test_sandesh_trace(self):
traces = requests.get('http://localhost:%s/Snh_SandeshTraceRequest?x=IfmapTraceBuf' %(introspect_port))
self.assertThat(traces.status_code, Equals(200))
top_elem = etree.fromstring(traces.text)
print top_elem[0][0][-1].text
logger.info("Top Elem: %s" % top_elem[0][0][-1].text)
self.assertThat(top_elem[0][0][-1].text, Contains('delete'))
self.assertThat(top_elem[0][0][-1].text, Contains(test_obj.name))

Expand Down Expand Up @@ -1933,7 +1933,7 @@ def setUpClass(cls):
super(TestVncCfgApiServerRequests, cls).setUpClass(
extra_config_knobs=[('DEFAULTS', 'max_requests', 10)])

def api_requests(self, orig_vn_read, count):
def api_requests(self, orig_vn_read, count, vn_name):
api_server = test_common.vnc_cfg_api_server.server
self.blocked = True
def slow_response_on_vn_read(obj_type, *args, **kwargs):
Expand All @@ -1945,7 +1945,7 @@ def slow_response_on_vn_read(obj_type, *args, **kwargs):
api_server._db_conn._cassandra_db.object_read = slow_response_on_vn_read

logger.info("Creating a test VN object.")
test_obj = self._create_test_object()
test_obj = self.create_virtual_network(vn_name, '1.1.1.0/24')
logger.info("Making max_requests(%s) to api server" % (count - 1))
def vn_read():
self._vnc_lib.virtual_network_read(id=test_obj.uuid)
Expand All @@ -1955,7 +1955,8 @@ def vn_read():
gevent.spawn(vn_read)
gevent.sleep(1)

def test_within_max_api_requests(self):
def test_max_api_requests(self):
# Test to make sure api-server accepts requests within max_api_requests
self.wait_till_api_server_idle()

# when there are pipe-lined requests, responses have content-length
Expand All @@ -1971,9 +1972,10 @@ def reset_response_content_length():
api_server = test_common.vnc_cfg_api_server.server
orig_vn_read = api_server._db_conn._cassandra_db.object_read
try:
self.api_requests(orig_vn_read, 5)
vn_name = self.id() + '5testvn1'
self.api_requests(orig_vn_read, 5, vn_name)
logger.info("Making one more requests well within the max_requests to api server")
vn_name = self.id() + 'testvn'
vn_name = self.id() + 'testvn1'
try:
greenlet = gevent.spawn(self.create_virtual_network, vn_name, '10.1.1.0/24')
gevent.sleep(0)
Expand All @@ -1986,15 +1988,17 @@ def reset_response_content_length():
api_server._db_conn._cassandra_db.object_read = orig_vn_read
self.blocked = False

def test_err_on_max_api_requests(self):
# Test to make sure api-server rejects requests over max_api_requests
self.wait_till_api_server_idle()
api_server = test_common.vnc_cfg_api_server.server
orig_vn_read = api_server._db_conn._cassandra_db.object_read
try:
self.api_requests(orig_vn_read, 11)
vn_name = self.id() + '11testvn2'
self.api_requests(orig_vn_read, 11, vn_name)
logger.info("Making one more requests (max_requests + 1) to api server")
try:
greenlet = gevent.spawn(self.create_virtual_network, 'testvn', '10.1.1.0/24')
vn_name = self.id() + 'testvn2'
greenlet = gevent.spawn(self.create_virtual_network, vn_name, '10.1.1.0/24')
gevent.sleep(0)
greenlet.get(timeout=3)
except gevent.timeout.Timeout as e:
Expand All @@ -2013,7 +2017,7 @@ class TestLocalAuth(test_case.ApiServerTestCase):
_rbac_role = 'admin'
@classmethod
def setUpClass(cls):
from keystoneclient.middleware import auth_token
from keystonemiddleware import auth_token
class FakeAuthProtocol(object):
_test_case = cls
def __init__(self, app, *args, **kwargs):
Expand Down

0 comments on commit 2bb8aba

Please sign in to comment.