Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1. from django.test import TestCase, Client
  2. from django.contrib.auth.models import User
  3. from dateutil import parser
  4. from .models import Crew, Plane, Flight, Ticket
  5.  
  6. from django.contrib.staticfiles.testing import StaticLiveServerTestCase
  7. from selenium.webdriver.firefox.webdriver import WebDriver
  8. from selenium.webdriver.support.ui import Select
  9. from selenium.webdriver.support.ui import WebDriverWait
  10. from selenium.webdriver.support import expected_conditions as EC
  11.  
  12. import time
  13.  
  14. class APICrewTest(TestCase):
  15. def setUp(self):
  16. User.objects.create_user(username='p', password='g')
  17.  
  18. firstPlane = Plane.objects.create(license_plate='FLA33', seats=120)
  19. firstCrew = Crew.objects.create(captains_first_name='John', captains_last_name='Johnson')
  20. 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"))
  21.  
  22. secondPlane = Plane.objects.create(license_plate='FLA34', seats=130)
  23. 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"))
  24.  
  25. def test_get_crews(self):
  26. response = self.client.get('/flights/api/get_crews/')
  27. self.assertEqual(response.status_code, 200)
  28. self.assertEqual(response.content, b'{"crews": [{"crew": "John Johnson\'s crew"}]}')
  29.  
  30. # def test_success_assign_crew(self):
  31.  
  32.  
  33. # def test_failure_assign_crew(self):
  34.  
  35. class SeleniumTest(StaticLiveServerTestCase):
  36. def test(self):
  37. # Setup
  38. driver = WebDriver()
  39.  
  40. User.objects.create_user(username='p', password='g')
  41.  
  42. firstPlane = Plane.objects.create(license_plate='FLA33', seats=120)
  43. firstCrew = Crew.objects.create(captains_first_name='John', captains_last_name='Johnson')
  44. 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"))
  45.  
  46. secondPlane = Plane.objects.create(license_plate='FLA34', seats=130)
  47. 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"))
  48.  
  49. # Log in
  50. driver.get("{}/flights".format(self.live_server_url))
  51. driver.find_element_by_name("username").send_keys("p")
  52. driver.find_element_by_name("password").send_keys("g")
  53. driver.find_element_by_name("loginButton").click()
  54. # Buying ticket
  55. driver.get("{}/flights/1".format(self.live_server_url))
  56. driver.find_element_by_name("passenger").send_keys("Tom Tomahawk")
  57. driver.find_element_by_name("passengerButton").click()
  58. # Check if bought correctly
  59.  
  60. print("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" + str(driver.find_elements_by_tag_name("td")[0].text) + "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz")
  61. self.assertEqual(driver.find_elements_by_tag_name("td")[0].text, "Tom Tomahawk")
  62.  
  63. # Go to Crews Site
  64.  
  65. driver.find_element_by_link_text("Go back").click()
  66. driver.find_element_by_link_text("Go to crews site").click()
  67. driver.find_element_by_name("filter_day").send_keys("1")
  68. driver.find_element_by_name("filter_month").send_keys("6")
  69. driver.find_element_by_name("filter_year").send_keys("2018")
  70.  
  71. driver.find_element_by_id("filterButton").click()
  72.  
  73. driver.implicitly_wait(10)
  74. # try:
  75. # WebDriverWait(driver, 10).until(
  76. # EC.presence_of_element_located((By.ID, "error_alert"))
  77. # )
  78. # finally:
  79. # error_message = "Error - couldn't assign crew! You have to be logged in!"
  80. # self.assertEqual(driver.find_element_by_class_name("alert").text, error_message)
  81.  
  82. # driver.close()
  83. # time.sleep(5)
  84.  
  85. Select(driver.find_element_by_id("flight_drop")).select_by_visible_text('Flight 2 from Warsaw to Tampa')
  86. # driver.find_element_by_xpath("//select[@id='flight_drop']/option[text()='Flight 1 from Warsaw to Tampa']").click()
  87. # driver.find_element_by_xpath("//select[@id='crew_drop']/option[text()='John Johnson\'s crew']").click()
  88. # driver.find_element_by_id("assign_button").click()
  89.  
  90. # # Assigning incorrect crews
  91. # driver.get("{}/static/crews.html".format(self.live_server_url))
  92. # driver.find_element_by_id("change_crew_assignment").click()
  93. # Select(driver.find_element_by_id("flight_select")).select_by_index(1)
  94. # driver.find_element_by_id("change_crew_assignment").click()
  95. # try:
  96. # WebDriverWait(driver, 10).until(
  97. # EC.presence_of_element_located((By.ID, "error_alert"))
  98. # )
  99. # finally:
  100. # error_message = "Error - couldn't assign crew! You have to be logged in!"
  101. # self.assertEqual(driver.find_element_by_class_name("alert").text, error_message)
  102.  
  103. driver.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement