Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.test import TestCase, Client
- from django.contrib.auth.models import User
- from dateutil import parser
- from .models import Crew, Plane, Flight, Ticket
- from django.contrib.staticfiles.testing import StaticLiveServerTestCase
- from selenium.webdriver.firefox.webdriver import WebDriver
- from selenium.webdriver.support.ui import Select
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- import time
- class APICrewTest(TestCase):
- def setUp(self):
- User.objects.create_user(username='p', password='g')
- firstPlane = Plane.objects.create(license_plate='FLA33', seats=120)
- firstCrew = Crew.objects.create(captains_first_name='John', captains_last_name='Johnson')
- firstFlight = Flight.objects.create(plane=firstPlane, source='Tampa', destination='Warsaw', departure=parser.parse("Jun 1 2018 7:00AM"), arrival=parser.parse("Jun 1 2005 9:13PM"))
- secondPlane = Plane.objects.create(license_plate='FLA34', seats=130)
- secondFlight = Flight.objects.create(plane=firstPlane, source='Warsaw', destination='Tampa', departure=parser.parse("Jun 1 2018 6:57AM"), arrival=parser.parse("Jun 1 2005 9:07PM"))
- def test_get_crews(self):
- response = self.client.get('/flights/api/get_crews/')
- self.assertEqual(response.status_code, 200)
- self.assertEqual(response.content, b'{"crews": [{"crew": "John Johnson\'s crew"}]}')
- # def test_success_assign_crew(self):
- # def test_failure_assign_crew(self):
- class SeleniumTest(StaticLiveServerTestCase):
- def test(self):
- # Setup
- driver = WebDriver()
- User.objects.create_user(username='p', password='g')
- firstPlane = Plane.objects.create(license_plate='FLA33', seats=120)
- firstCrew = Crew.objects.create(captains_first_name='John', captains_last_name='Johnson')
- firstFlight = Flight.objects.create(plane=firstPlane, source='Tampa', destination='Warsaw', departure=parser.parse("Jun 1 2018 7:00AM"), arrival=parser.parse("Jun 1 2005 9:13PM"))
- secondPlane = Plane.objects.create(license_plate='FLA34', seats=130)
- secondFlight = Flight.objects.create(plane=firstPlane, source='Warsaw', destination='Tampa', departure=parser.parse("Jun 1 2018 6:57AM"), arrival=parser.parse("Jun 1 2005 9:07PM"))
- # Log in
- driver.get("{}/flights".format(self.live_server_url))
- driver.find_element_by_name("username").send_keys("p")
- driver.find_element_by_name("password").send_keys("g")
- driver.find_element_by_name("loginButton").click()
- # Buying ticket
- driver.get("{}/flights/1".format(self.live_server_url))
- driver.find_element_by_name("passenger").send_keys("Tom Tomahawk")
- driver.find_element_by_name("passengerButton").click()
- # Check if bought correctly
- print("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" + str(driver.find_elements_by_tag_name("td")[0].text) + "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz")
- self.assertEqual(driver.find_elements_by_tag_name("td")[0].text, "Tom Tomahawk")
- # Go to Crews Site
- driver.find_element_by_link_text("Go back").click()
- driver.find_element_by_link_text("Go to crews site").click()
- driver.find_element_by_name("filter_day").send_keys("1")
- driver.find_element_by_name("filter_month").send_keys("6")
- driver.find_element_by_name("filter_year").send_keys("2018")
- driver.find_element_by_id("filterButton").click()
- driver.implicitly_wait(10)
- # try:
- # WebDriverWait(driver, 10).until(
- # EC.presence_of_element_located((By.ID, "error_alert"))
- # )
- # finally:
- # error_message = "Error - couldn't assign crew! You have to be logged in!"
- # self.assertEqual(driver.find_element_by_class_name("alert").text, error_message)
- # driver.close()
- # time.sleep(5)
- Select(driver.find_element_by_id("flight_drop")).select_by_visible_text('Flight 2 from Warsaw to Tampa')
- # driver.find_element_by_xpath("//select[@id='flight_drop']/option[text()='Flight 1 from Warsaw to Tampa']").click()
- # driver.find_element_by_xpath("//select[@id='crew_drop']/option[text()='John Johnson\'s crew']").click()
- # driver.find_element_by_id("assign_button").click()
- # # Assigning incorrect crews
- # driver.get("{}/static/crews.html".format(self.live_server_url))
- # driver.find_element_by_id("change_crew_assignment").click()
- # Select(driver.find_element_by_id("flight_select")).select_by_index(1)
- # driver.find_element_by_id("change_crew_assignment").click()
- # try:
- # WebDriverWait(driver, 10).until(
- # EC.presence_of_element_located((By.ID, "error_alert"))
- # )
- # finally:
- # error_message = "Error - couldn't assign crew! You have to be logged in!"
- # self.assertEqual(driver.find_element_by_class_name("alert").text, error_message)
- driver.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement