Booth Module#
The Booth module is responsible for various functionalities. This section documents the components of the Booth module, including models, views, and more.
views.py#
- class booth.views.BoothView[source]#
- Bases: - TemplateView- View for rendering the booth template with voting information. - This view retrieves voting information based on the provided ‘voting_id’ parameter and renders the ‘booth/booth.html’ template with the voting details. - Variables:
- template_name (str) – The name of the HTML template to be rendered. 
 - get_context_data(**kwargs)[source]#
- Get the context data for rendering the template. - Retrieves voting information based on the ‘voting_id’ parameter and prepares the context data to be used in the template. - Parameters:
- kwargs (dict) – Keyword arguments passed to the view. 
- Returns:
- A dictionary containing the context data. 
- Return type:
- dict 
- Raises:
- Http404 – If there is an issue retrieving voting information. 
 
 - template_name = 'booth/booth.html'#
 
test_selenium.py#
- class booth.test_selenium.CommentBoothTestCase[source]#
- Bases: - StaticLiveServerTestCase- Selenium-based test case for the Comment Booth in the voting app. - This test case covers the behavior of the Comment Booth, including the setup, user creation, and interaction with the web interface. - Variables:
- base (BaseTestCase) – An instance of BaseTestCase for common test setup and teardown. 
- v (Voting) – The Voting instance created for testing. 
- driver (webdriver.Chrome) – The Selenium WebDriver instance for browser automation. 
 
 - create_voting()[source]#
- Create a test voting with a text-type question. - Returns:
- The created Voting instance. 
- Return type:
 
 - get_or_create_user(pk)[source]#
- Get or create a test user. - Parameters:
- pk (int) – The primary key for the user. 
- Returns:
- The User instance. 
- Return type:
- User 
 
 - setUp()[source]#
- Set up the test environment before each test method is run. - This method is called before each test method in the test case. - Returns:
- None 
 
 
- class booth.test_selenium.MultipleChoiceQuestionBoothTest[source]#
- Bases: - StaticLiveServerTestCase- Selenium-based test case for the Multiple Choice Question booth in the voting app. - This test case covers the behavior of the Multiple Choice Question booth, including the setup, user creation, and the interaction with the web interface. - Variables:
- base (BaseTestCase) – An instance of BaseTestCase for common test setup and teardown. 
- v (Voting) – The Voting instance created for testing. 
- driver (webdriver.Chrome) – The Selenium WebDriver instance for browser automation. 
 
 - create_voting()[source]#
- Create a test voting with a multiple-choice question and options. - Returns:
- The created Voting instance. 
- Return type:
 
 - get_or_create_user(pk)[source]#
- Get or create a test user. - Parameters:
- pk (int) – The primary key for the user. 
- Returns:
- The User instance. 
- Return type:
- User 
 
 - setUp()[source]#
- Set up the test environment before each test method is run. - This method is called before each test method in the test case. - Returns:
- None 
 
 - tearDown()[source]#
- Clean up the test environment after each test method is run. - This method is called after each test method in the test case. - Returns:
- None 
 
 - test_testquestionmultipleoptions()[source]#
- Test the behavior of selecting multiple options in a multiple-choice question booth. - This test navigates to the booth for a specific voting, logs in as a user, selects multiple options, submits the form, and then verifies that the correct number of options is selected and that the form count is as expected. - Returns:
- None 
 
 
- class booth.test_selenium.PreferenceBoothTest[source]#
- Bases: - StaticLiveServerTestCase- Selenium-based test case for the Preference Question booth in the voting app. - This test case covers the behavior of the Preference Question booth, including the setup, user creation, and interaction with the web interface. - Variables:
- base (BaseTestCase) – An instance of BaseTestCase for common test setup and teardown. 
- v (Voting) – The Voting instance created for testing. 
- driver (webdriver.Chrome) – The Selenium WebDriver instance for browser automation. 
 
 - create_voting()[source]#
- Create a test voting with a Preference type question. - Returns:
- The created Voting instance. 
- Return type:
 
 - get_or_create_user(pk)[source]#
- Get or create a test user. - Parameters:
- pk (int) – The primary key for the user. 
- Returns:
- The User instance. 
- Return type:
- User 
 
 - login_user(username, password)[source]#
- Log in a user with the provided username and password. - Parameters:
- username (str) – The username of the user. 
- password (str) – The password of the user. 
 
- Returns:
- None 
 
 - perform_preference(preferences, expected_values)[source]#
- Perform a preference vote with the given preferences and verify the results. - Parameters:
- preferences (list) – List of preferences to be voted. 
- expected_values (dict) – Dictionary containing expected values for each preference. 
 
- Returns:
- None 
 
 - select_preferences(preferences)[source]#
- Select preferences based on the provided list. - Parameters:
- preferences (list) – List of preferences to be selected. 
- Returns:
- None 
 
 - setUp()[source]#
- Set up the test environment before each test method is run. - This method is called before each test method in the test case. - Returns:
- None 
 
 - tearDown()[source]#
- Clean up the test environment after each test method is run. - This method is called after each test method in the test case. - Returns:
- None 
 
 - test_preference_booth_no_fullfile_all_preferences()[source]#
- Test the preference voting with some preferences not fully filled. - Returns:
- None 
 
 
- class booth.test_selenium.YesNoBoothTestCase[source]#
- Bases: - StaticLiveServerTestCase- Selenium-based test case for the Yes/No Question booth in the voting app. - This test case covers the behavior of the Yes/No Question booth, including the setup, user creation, and interaction with the web interface. - Variables:
- base (BaseTestCase) – An instance of BaseTestCase for common test setup and teardown. 
- v (Voting) – The Voting instance created for testing. 
- driver (webdriver.Chrome) – The Selenium WebDriver instance for browser automation. 
 
 - create_voting()[source]#
- Create a test voting with a Yes/No type question. - Returns:
- The created Voting instance. 
- Return type:
 
 - get_or_create_user(pk)[source]#
- Get or create a test user. - Parameters:
- pk (int) – The primary key for the user. 
- Returns:
- The User instance. 
- Return type:
- User 
 
 - setUp()[source]#
- Set up the test environment before each test method is run. - This method is called before each test method in the test case. - Returns:
- None 
 
 - tearDown()[source]#
- Clean up the test environment after each test method is run. - This method is called after each test method in the test case. - Returns:
- None 
 
 - test_testquestionyesno()[source]#
- Test the behavior of submitting a Yes/No response in a Yes/No type question booth. - This test navigates to the booth for a specific voting, logs in as a user, submits a Yes response, and verifies the success alert indicating that the vote has been sent. - Returns:
- None 
 
 
tests.py#
- class booth.tests.BoothTestCase[source]#
- Bases: - BaseTestCase- Test case for the BoothView in the booth app. - This test case includes methods to test the behavior of the BoothView under different scenarios. - Variables:
- client (Client) – The Django test client used to simulate HTTP requests. 
 - setUp()[source]#
- Set up the test environment before each test method is run. - This method is called before each test method in the test case. - Returns:
- None 
 
 - tearDown()[source]#
- Clean up the test environment after each test method is run. - This method is called after each test method in the test case. - Returns:
- None