Fix Membership list loading bug

When loading a page on its own that contains the membership workflow,
the member lists would not get populated.

Also include a Selenium unit test to avoid similar regressions in the
future.

Change-Id: I5f23da271313f3ddf4acded221864ef5ba83f0eb
Closes-Bug: #1288270
This commit is contained in:
Julie Pichon 2014-03-10 16:27:37 +00:00
parent 116e12cf97
commit 20374f9abd
2 changed files with 42 additions and 1 deletions

View File

@ -40,7 +40,7 @@
<script>
if (typeof $ !== 'undefined') {
if (typeof horizon.membership !== 'undefined') {
horizon.membership.workflow_init($(".workflow"), "{{ step.slug }}", "{{ step.get_id }}");
} else {
addHorizonLoadEvent(function() {

View File

@ -1658,3 +1658,44 @@ class SeleniumTests(test.SeleniumAdminTestCase):
self.assertTrue(data_wrapper.text == u'test_tenant',
"Error: saved tenant name is expected to be "
"'test_tenant'")
@test.create_stubs({api.keystone: ('get_default_domain',
'get_default_role',
'user_list',
'group_list',
'role_list'),
api.base: ('is_service_enabled',),
quotas: ('get_default_quota_data',)})
def test_membership_list_loads_correctly(self):
member_css_class = ".available_members"
users = self.users.list()
api.base.is_service_enabled(IsA(http.HttpRequest), 'network') \
.MultipleTimes().AndReturn(False)
api.base.is_service_enabled(IsA(http.HttpRequest), 'volume') \
.MultipleTimes().AndReturn(False)
api.keystone.get_default_domain(IsA(http.HttpRequest)) \
.AndReturn(self.domain)
quotas.get_default_quota_data(IsA(http.HttpRequest)) \
.AndReturn(self.quotas.first())
api.keystone.get_default_role(IsA(http.HttpRequest)) \
.MultipleTimes().AndReturn(self.roles.first())
api.keystone.user_list(IsA(http.HttpRequest), domain=self.domain.id) \
.AndReturn(users)
api.keystone.role_list(IsA(http.HttpRequest)) \
.AndReturn(self.roles.list())
api.keystone.group_list(IsA(http.HttpRequest), domain=self.domain.id) \
.AndReturn(self.groups.list())
api.keystone.role_list(IsA(http.HttpRequest)) \
.AndReturn(self.roles.list())
self.mox.ReplayAll()
self.selenium.get("%s%s" % (self.live_server_url,
reverse('horizon:admin:projects:create')))
members = self.selenium.find_element_by_css_selector(member_css_class)
for user in users:
self.assertIn(user.name, members.text)