- | {{ event.pk }} |
+ {{ event.pk }} |
-
+ |
{{ event.start_date|date:"D d/m/Y" }}
{% if event.end_date and event.end_date != event.start_date %}
{{ event.end_date|date:"D d/m/Y" }}
@@ -45,7 +45,7 @@
{% endif %}
|
-
+ |
|
-
+ |
{% if event.mic %}
{% if perms.RIGS.view_profile %}
diff --git a/RIGS/templates/index.html b/RIGS/templates/index.html
index c446e1ba..7d12d0f7 100644
--- a/RIGS/templates/index.html
+++ b/RIGS/templates/index.html
@@ -34,8 +34,8 @@
Quick Links
- TEC Forum
- TEC Wiki
+ TEC Forum
+ TEC Wiki
{% if perms.RIGS.view_event %}
Price List
{% endif %}
diff --git a/RIGS/tests/pages.py b/RIGS/tests/pages.py
new file mode 100644
index 00000000..5e06e877
--- /dev/null
+++ b/RIGS/tests/pages.py
@@ -0,0 +1,54 @@
+from pypom import Page, Region
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support import expected_conditions
+from selenium.webdriver import Chrome
+from django.urls import reverse
+from PyRIGS.tests import regions
+from PyRIGS.tests.pages import BasePage, FormPage
+from selenium.common.exceptions import NoSuchElementException
+
+class Index(BasePage):
+ URL_TEMPLATE = reverse('index')
+
+
+class Rigboard(BasePage):
+ URL_TEMPLATE = reverse('rigboard')
+
+ _add_item_selector = (By.CSS_SELECTOR, 'a.btn:nth-child(2)')
+ _event_row_locator = (By.ID, 'event_row')
+
+ def add(self):
+ self.find_element(*self._add_item_selector).click()
+
+ class EventListRow(Region):
+ _event_number_locator = (By.ID, "event_number")
+ _event_dates_locator = (By.ID, "event_dates")
+ _event_details_locator = (By.ID, "event_details")
+ _event_mic_locator = (By.ID, "event_mic")
+
+ @property
+ def id(self):
+ return self.find_element(*self._event_number_locator).text
+
+ @property
+ def dates(self):
+ return self.find_element(*self._event_dates_locator).text
+
+ @property
+ def details(self):
+ return self.find_element(*self._event_details_locator).text
+
+ @property
+ def mic(self):
+ return self.find_element(*self._event_mic_locator).text
+
+ @property
+ def events(self):
+ return [self.EventListRow(self, i) for i in self.find_elements(*self._event_row_locator)]
+
+
+class GenericList(BasePage):
+ _search_selector = (By.CSS_SELECTOR, 'div.input-group:nth-child(2) > input:nth-child(1)')
+ _search_go_selector = (By.ID, 'id_search')
+ _add_item_selector = (By.CSS_SELECTOR, '.btn-success')
+
diff --git a/RIGS/tests/regions.py b/RIGS/tests/regions.py
new file mode 100644
index 00000000..aec64bcf
--- /dev/null
+++ b/RIGS/tests/regions.py
@@ -0,0 +1,12 @@
+from pypom import Region
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support import expected_conditions
+from selenium.webdriver.remote.webelement import WebElement
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support.select import Select
+import datetime
+
+
+class Header(Region):
+ def find_link(self, link_text):
+ return self.driver.find_element_by_partial_link_text(link_text)
diff --git a/RIGS/tests/test_functional.py b/RIGS/tests/test_functional.py
index 086a36a2..0d0db6d1 100644
--- a/RIGS/tests/test_functional.py
+++ b/RIGS/tests/test_functional.py
@@ -64,19 +64,6 @@ class EventTest(LiveServerTestCase):
self.assertEqual(self.live_server_url + n, self.browser.current_url)
- def testRigboardButtons(self):
- # Requests address
- self.browser.get(self.live_server_url + '/rigboard/')
- # Gets redirected to login
- self.authenticate('/rigboard/')
-
- # Completes and comes back to rigboard
- # Clicks add new
- self.browser.find_element_by_partial_link_text("New").click()
- self.assertEqual(
- self.live_server_url + '/event/create/', self.browser.current_url)
- self.browser.get(self.live_server_url + '/rigboard/')
-
def testRigCreate(self):
# Requests address
self.browser.get(self.live_server_url + '/event/create/')
@@ -1061,7 +1048,6 @@ class TECEventAuthorisationTest(TestCase):
self.assertEqual(self.event.auth_request_to, 'client@functional.test')
self.assertIsNotNone(self.event.auth_request_at)
-
class SearchTest(LiveServerTestCase):
def setUp(self):
self.profile = models.Profile(
diff --git a/RIGS/tests/test_rigs.py b/RIGS/tests/test_rigs.py
new file mode 100644
index 00000000..dda892e2
--- /dev/null
+++ b/RIGS/tests/test_rigs.py
@@ -0,0 +1,66 @@
+from . import pages
+from django.core.management import call_command
+from django.test import TestCase
+from django.test.utils import override_settings
+from django.urls import reverse
+from urllib.parse import urlparse
+from PyRIGS.tests.base import BaseTest, AutoLoginTest
+from RIGS import models, urls
+from reversion import revisions as reversion
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.common.by import By
+from selenium.webdriver.common.keys import Keys
+from selenium.webdriver.support.ui import WebDriverWait
+from PyRIGS.tests.base import animation_is_finished
+from PyRIGS.tests import base
+from RIGS.tests import regions
+from datetime import date, time, datetime, timedelta
+from django.utils import timezone
+
+
+class TestRigboard(AutoLoginTest):
+ def setUp(self):
+ super().setUp()
+ client = models.Person.objects.create(name='Duplicate Test Person', email='duplicate@functional.test')
+ self.vatrate = models.VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
+ self.testEvent = models.Event.objects.create(name="TE E1", status=models.Event.PROVISIONAL,
+ start_date=date.today() + timedelta(days=6),
+ description="start future no end",
+ purchase_order='TESTPO',
+ person=client,
+ auth_request_by=self.profile,
+ auth_request_at=base.create_datetime(2015, 0o6, 0o4, 10, 00),
+ auth_request_to="some@email.address")
+ self.testEvent2 = models.Event.objects.create(name="TE E2", status=models.Event.PROVISIONAL,
+ start_date=date.today() + timedelta(days=8),
+ description="start future no end, later",
+ purchase_order='TESTPO',
+ person=client,
+ auth_request_by=self.profile,
+ auth_request_at=base.create_datetime(2015, 0o6, 0o4, 10, 00),
+ auth_request_to="some@email.address")
+
+ self.page = pages.Rigboard(self.driver, self.live_server_url).open()
+
+ def test_buttons(self):
+ header = regions.Header(self.page, self.driver.find_element(By.CSS_SELECTOR, '.navbar'))
+ # TODO Switch to checking reversed links (difficult because of arguments)
+ header.find_link("Rigboard").click()
+ self.assertEqual(
+ self.live_server_url + '/rigboard/', self.driver.current_url)
+ header.find_link("Archive").click()
+ self.assertEqual(
+ self.live_server_url + '/event/archive/', self.driver.current_url)
+ # TODO - This fails for some reason
+ # header.find_link("New").click()
+ # self.assertEqual(
+ # self.live_server_url + '/event/create/', self.driver.current_url)
+
+ def test_event_order(self):
+ self.assertIn(self.testEvent.start_date.strftime('%a %d/%m/%Y'), self.page.events[0].dates)
+ self.assertIn(self.testEvent2.start_date.strftime('%a %d/%m/%Y'), self.page.events[1].dates)
+
+ def test_add_button(self):
+ self.page.add()
+ self.assertIn('create', self.driver.current_url)
+ # Ideally get a response object to assert 200 on
diff --git a/assets/templates/asset_embed.html b/assets/templates/asset_embed.html
index 2d98a541..beb8538f 100644
--- a/assets/templates/asset_embed.html
+++ b/assets/templates/asset_embed.html
@@ -22,6 +22,7 @@
{{ object.status }}
+
{% if object.serial_number %}
- Serial Number:
- {{ object.serial_number }}
@@ -30,7 +31,7 @@
- Comments:
- {{ object.comments|linebreaksbr }}
-
{% endif %}
-
+
diff --git a/assets/templates/asset_list.html b/assets/templates/asset_list.html
index 687e6339..fbf93b70 100644
--- a/assets/templates/asset_list.html
+++ b/assets/templates/asset_list.html
@@ -39,7 +39,7 @@
{% include 'partials/asset_list_table.html' %}
diff --git a/assets/templates/base_assets.html b/assets/templates/base_assets.html
index 2c256f28..06555280 100644
--- a/assets/templates/base_assets.html
+++ b/assets/templates/base_assets.html
@@ -5,7 +5,7 @@
{% endblock %}
{% block titleheader %}
- RIGS
+ RIGS
Assets
{% endblock %}
@@ -13,23 +13,23 @@
Assets
diff --git a/assets/templates/cable_type_list.html b/assets/templates/cable_type_list.html
index 74e97407..34f69f8f 100644
--- a/assets/templates/cable_type_list.html
+++ b/assets/templates/cable_type_list.html
@@ -11,21 +11,21 @@
- | Cable Type |
- Circuits |
- Cores |
- Quick Links |
+ Cable Type |
+ Circuits |
+ Cores |
+ Quick Links |
{% for item in object_list %}
- | {{ item }} |
+ {{ item }} |
{{ item.circuits }} |
{{ item.cores }} |
- View
- Edit
+ View
+ Edit
|
{% endfor %}
diff --git a/versioning/migrations/__init__.py b/versioning/migrations/__init__.py
new file mode 100644
index 00000000..e69de29b
|