예제 #1
0
def resource():
    UserRepo.add_user(username="******",
                      password="******",
                      email="*****@*****.**")
    user_id = UserRepo.get_all_users()[0].id
    yield user_id
    drop_db("gtd_test")  #TODO: Read from config?
예제 #2
0
 def test_log_in_and_add_item(self):
     self.driver.get(URL)
     # Get username and password elements
     userelem = self.driver.find_element_by_name("username")
     passwordelem = self.driver.find_element_by_name("password")
     # Type in username and password so we can log in
     userelem.clear()
     userelem.send_keys(self.username)
     passwordelem.clear()
     passwordelem.send_keys(self.password)
     passwordelem.send_keys(Keys.RETURN)
     try:
         WebDriverWait(self.driver, 10).until(
             EC.presence_of_element_located((By.ID, "app")))
     except:
         self.driver.quit()
         drop_db(DB)
         assert False  # Website did not load upon clicking link
     # Find the input where we can enter items
     input_box = self.driver.find_element_by_tag_name("input")
     input_box.send_keys("Item 1")
     input_box.send_keys(Keys.RETURN)
     time.sleep(0.5)  # Let the post request go through
     # Make sure the item is in the list of items
     item_list_content = [
         el.text
         for el in self.driver.find_elements_by_class_name("gtd-item")
     ]
     assert len(item_list_content) == 1
     assert item_list_content[0] == "Item 1"
예제 #3
0
 def test_log_in_and_add_projects(self):
     self.driver.get(URL)
     # Get username and password elements
     userelem = self.driver.find_element_by_name("username")
     passwordelem = self.driver.find_element_by_name("password")
     # Type in username and password so we can log in
     userelem.clear()
     userelem.send_keys(self.username)
     passwordelem.clear()
     passwordelem.send_keys(self.password)
     passwordelem.send_keys(Keys.RETURN)
     try:
         WebDriverWait(self.driver, 10).until(
             EC.presence_of_element_located((By.ID, "app")))
     except:
         self.driver.quit()
         drop_db(DB)
         assert False  # Website did not load upon clicking link
     # Find the button to change screens and go to the project screen
     screenforward_elem = self.driver.find_element_by_id("screenforward")
     screenforward_elem.click()
     screenforward_elem.click()
     screenforward_elem.click()
     # Find the input where we can enter projects
     input_box = self.driver.find_element_by_tag_name("input")
     input_box.send_keys("Project 1")
     input_box.send_keys(Keys.RETURN)
     time.sleep(0.5)  # Let the post request go through
     input_box.send_keys("Project 2")
     input_box.send_keys(Keys.RETURN)
     time.sleep(0.5)  # Let the post request go through
     # Make sure we have zero items, zero tasks, and one project
     item_list_content = [
         el.text
         for el in self.driver.find_elements_by_class_name("gtd-item")
     ]
     task_list_content = [
         el.text
         for el in self.driver.find_elements_by_class_name("gtd-task")
     ]
     project_list_content = [
         el.text
         for el in self.driver.find_elements_by_class_name("gtd-project")
     ]
     assert len(item_list_content) == 0
     assert len(task_list_content) == 0
     assert len(project_list_content) == 2
     assert project_list_content[0].startswith("Project 1") == True
     assert project_list_content[1].startswith("Project 2") == True
예제 #4
0
def resource():
    drop_db("gtd_test")  # TODO: read from config?
예제 #5
0
 def teardown_method(self, method):
     # Closer the browser
     self.driver.quit()
     # Dump the test database contents
     drop_db(DB)