# -*- coding: utf-8 -*- import time from datetime import datetime, timedelta from django.test import TestCase from django.shortcuts import reverse from django.utils.timezone import now from selene.api import * from project.tests import SeleniumTestCase from project.tests.factories import UserFactory, User, CourseFactory, LiveLessonFactory from project.utils.selenium_utils import SeleniumExtensions as SE class PaymentsTestCase(SeleniumTestCase): fixtures = ['school_schedules.json'] @classmethod def setUpTestData(cls): UserFactory.create_batch(2, role=User.AUTHOR_ROLE) UserFactory(role=User.USER_ROLE) CourseFactory.create_batch(4, user=User.objects.filter(role=User.AUTHOR_ROLE)) for i in range(11): LiveLessonFactory(date=now() - timedelta(i + 2)) def test_can_buy_school(self): simple_user = UserFactory(role=User.USER_ROLE) self.login(simple_user) browser.set_driver(self.driver) browser.open_url(self.get_url(reverse('index'))) self.wait_for_js_load() pay_btn = s('#lilcity-vue-app > div.main.main_default > div > div.main__actions > a[data-popup=".js-popup-buy"]') h = s('header.header').size.get('height') location = pay_btn.location self.driver.execute_script("window.scrollTo({x},{y});".format(x=location['x'], y=location['y'] - h - 10)) pay_btn.should(be.visible) pay_btn.click() popup = s('.js-popup-buy') popup.should(be.visible) popup.s('a.buy__btn').click() SE.switch_iframe_css('[allowpaymentrequest]') s('#cardNumber').set_value('4242424242424242') s('#inputMonth').set_value('12') s('#inputYear').set_value('33') s('div.cvv > div > div > input[type="text"]').set_value('333') s('#cardHolder').set_value('TEST') s('#sizingContainer button[type=submit]').click() SE.switch_iframe_css('#threeDSContainer > iframe') s('#password').set_value('4') s('button[type=submit]').click() SE.switch_iframe_css('[allowpaymentrequest]') s('#statusContainer > div.bottom > a.button').click()