2023-10-19 11:11:51 +00:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
2023-10-19 10:42:14 +00:00
|
|
|
import unittest
|
2023-10-20 11:25:19 +00:00
|
|
|
from unittest.mock import patch, call
|
|
|
|
|
|
|
|
from selenium.webdriver.common.by import By
|
|
|
|
from selenium.webdriver.common.keys import Keys
|
2023-10-19 10:42:14 +00:00
|
|
|
|
|
|
|
import jardin
|
|
|
|
|
|
|
|
class TestJardin(unittest.TestCase):
|
2023-10-20 11:25:19 +00:00
|
|
|
@patch("jardin.webdriver.Firefox")
|
2023-10-19 20:00:07 +00:00
|
|
|
def test_initialize_webdriver_calls_Firefox(self, mockFirefox):
|
2023-10-19 10:42:14 +00:00
|
|
|
jardin.initialize_webdriver()
|
|
|
|
|
|
|
|
mockFirefox.assert_called_once()
|
|
|
|
|
2023-10-20 11:25:19 +00:00
|
|
|
@patch("jardin.webdriver.Firefox")
|
2023-10-19 20:34:17 +00:00
|
|
|
def test_navigate_to_filegarden(self, mockFirefox):
|
|
|
|
jardin.navigate_to_filegarden(mockFirefox)
|
|
|
|
|
2023-10-19 20:53:19 +00:00
|
|
|
mockFirefox.get.assert_called_once_with("https://filegarden.com/login")
|
2023-10-19 20:34:17 +00:00
|
|
|
|
2023-10-20 11:25:19 +00:00
|
|
|
@patch("jardin.webdriver.Firefox")
|
|
|
|
def test_login_with_password_performs_login_steps(self, mockFirefox):
|
|
|
|
mockEmail = "email@mail.com"
|
|
|
|
mockPassword = "p4$$w0rd"
|
|
|
|
|
|
|
|
jardin.login_with_password(mockFirefox, mockEmail, mockPassword)
|
|
|
|
|
|
|
|
mockFirefox.find_element.assert_called_with(By.ID, "email")
|
|
|
|
mockFirefox.find_element.return_value.send_keys.assert_has_calls([
|
|
|
|
call(mockEmail),
|
|
|
|
call(Keys.RETURN)
|
|
|
|
])
|
|
|
|
|
2023-10-19 20:00:07 +00:00
|
|
|
@patch("jardin.initialize_webdriver")
|
2023-10-19 20:34:17 +00:00
|
|
|
@patch("jardin.navigate_to_filegarden")
|
|
|
|
def test_main_calls_methods_in_correct_order(self,
|
|
|
|
mockInitializeWebdriver,
|
|
|
|
mockNavigateToFilegarden):
|
2023-10-19 20:00:07 +00:00
|
|
|
jardin.main()
|
|
|
|
|
|
|
|
mockInitializeWebdriver.assert_called_once()
|
2023-10-19 20:34:17 +00:00
|
|
|
mockNavigateToFilegarden.assert_called_once()
|
2023-10-19 20:00:07 +00:00
|
|
|
|
2023-10-19 11:11:51 +00:00
|
|
|
if __name__ == "__main__":
|
|
|
|
unittest.main()
|