mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 19:26:48 +00:00
#241 made the host sections pills: on a desktop they took two lines, unlike the breadcrumb the pages had. computes/host_nav.html is the breadcrumb again, one line at 1200 px and wider, still shared by the eleven host pages: the section's own page is its bold item with aria-current="page", an item page (a pool, a network) links its section in bold with aria-current="true". The capacity lines were kept on one line, made for the Computes table: in the overview's narrower cards a long memory line ran out of its card. They now wrap.
25 lines
1 KiB
Python
25 lines
1 KiB
Python
"""The host pages' shared section links."""
|
|
|
|
from django.template.loader import render_to_string
|
|
from django.test import TestCase
|
|
from lxml import html
|
|
|
|
from computes.models import Compute
|
|
|
|
|
|
class HostNavTestCase(TestCase):
|
|
def setUp(self):
|
|
self.compute = Compute.objects.create(name="c", hostname="192.0.2.1", login="u", password="p", type=1)
|
|
|
|
def items(self, **context):
|
|
nav = html.fromstring(render_to_string("computes/host_nav.html", {"compute": self.compute, **context}))
|
|
return {item.text_content().strip(): (item.tag, item.get("aria-current")) for item in nav.xpath("//li/*")}
|
|
|
|
def test_the_section_s_own_page_is_the_current_page(self):
|
|
items = self.items(section="storages")
|
|
self.assertEqual(len(items), 7)
|
|
self.assertEqual(items["Storages"], ("span", "page"))
|
|
self.assertEqual(items["Overview"], ("a", None))
|
|
|
|
def test_an_item_of_a_section_links_the_section_as_where_it_is(self):
|
|
self.assertEqual(self.items(section="networks", detail=True)["Networks"], ("a", "true"))
|