|
|
|
|
@ -3,6 +3,7 @@ import time |
|
|
|
|
from factory.faker import Faker |
|
|
|
|
from selenium.common.exceptions import TimeoutException |
|
|
|
|
from selenium.webdriver.common.by import By |
|
|
|
|
from django.utils.html import strip_tags |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestContentMixin: |
|
|
|
|
@ -22,9 +23,10 @@ class TestContentMixin: |
|
|
|
|
for i, item in enumerate(object.content.all().order_by('position', '-created_at',)): |
|
|
|
|
item_data = self.content_data[i].get('data') |
|
|
|
|
for key, value in item_data.items(): |
|
|
|
|
print('real obj field value:', getattr(item, key, None)) |
|
|
|
|
print('expected value:', value) |
|
|
|
|
self.assertEqual(getattr(item, key), value) |
|
|
|
|
if key == 'txt': |
|
|
|
|
self.assertEqual(strip_tags(getattr(item, key)), value) |
|
|
|
|
else: |
|
|
|
|
self.assertEqual(getattr(item, key), value) |
|
|
|
|
print('OK') |
|
|
|
|
|
|
|
|
|
def check_content(self, inside_el=None): |
|
|
|
|
@ -34,7 +36,7 @@ class TestContentMixin: |
|
|
|
|
open_el = self.wait_elem_name('block-add-open', block_add_el) |
|
|
|
|
self.assertRaises(TimeoutException, lambda: self.wait_elem_name('block-add-close', block_add_el)) |
|
|
|
|
open_el.click() |
|
|
|
|
time.sleep(1) |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
close_el = self.wait_elem_name('block-add-close', block_add_el) |
|
|
|
|
|
|
|
|
|
block_text_el = self.wait_elem_name('block-add-block-text', block_add_el) |
|
|
|
|
@ -42,21 +44,29 @@ class TestContentMixin: |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
self.check_block_text(inside_el) |
|
|
|
|
|
|
|
|
|
open_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
block_image_el = self.wait_elem_name('block-add-block-image', block_add_el) |
|
|
|
|
block_image_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
self.check_block_image(inside_el) |
|
|
|
|
|
|
|
|
|
open_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
block_image_text_el = self.wait_elem_name('block-add-block-image-text', block_add_el) |
|
|
|
|
block_image_text_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
self.check_block_image_text(inside_el) |
|
|
|
|
|
|
|
|
|
open_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
block_images_el = self.wait_elem_name('block-add-block-images', block_add_el) |
|
|
|
|
block_images_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
self.check_block_images(inside_el) |
|
|
|
|
|
|
|
|
|
open_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
block_video_el = self.wait_elem_name('block-add-block-video', block_add_el) |
|
|
|
|
block_video_el.click() |
|
|
|
|
time.sleep(0.5) |
|
|
|
|
@ -68,8 +78,7 @@ class TestContentMixin: |
|
|
|
|
block_obj = {'type': 'text', 'data': {}} |
|
|
|
|
block_el = self.wait_elem_name('block-text', inside_el) |
|
|
|
|
title_el = self.wait_elem_name('block-text-title', block_el) |
|
|
|
|
text_el = self.wait_elem_name('block-text-text-wrap', block_el) |
|
|
|
|
text_el.find_element( |
|
|
|
|
text_el = self.wait_elem_name('block-text-text-wrap', block_el).find_element( |
|
|
|
|
By.XPATH, './/div[contains(@class, "redactor-layer")][@contenteditable]') |
|
|
|
|
self.content_data.append(block_obj) |
|
|
|
|
|
|
|
|
|
@ -77,11 +86,9 @@ class TestContentMixin: |
|
|
|
|
title_el.send_keys(title) |
|
|
|
|
block_obj['data']['title'] = title |
|
|
|
|
text = Faker('sentence', nb_words=50).generate({}) |
|
|
|
|
self.driver.execute_script("arguments[0].click();", text_el) |
|
|
|
|
self.driver.execute_script("arguments[0].innerHtml = arguments[1];", text_el, text) |
|
|
|
|
self.driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", text_el) |
|
|
|
|
# text_el.send_keys(text) |
|
|
|
|
block_obj['data']['text'] = '<p>%s</p>' % text |
|
|
|
|
text_el.click() |
|
|
|
|
text_el.send_keys(text) |
|
|
|
|
block_obj['data']['txt'] = text |
|
|
|
|
self.check_auto_saving() |
|
|
|
|
|
|
|
|
|
def check_block_image(self, inside_el=None): |
|
|
|
|
@ -114,11 +121,9 @@ class TestContentMixin: |
|
|
|
|
title_el.send_keys(title) |
|
|
|
|
block_obj['data']['title'] = title |
|
|
|
|
text = Faker('sentence', nb_words=50).generate({}) |
|
|
|
|
self.driver.execute_script("arguments[0].click();", text_el) |
|
|
|
|
self.driver.execute_script("arguments[0].innerHtml = arguments[1];", text_el, text) |
|
|
|
|
self.driver.execute_script("arguments[0].dispatchEvent(new Event('change'));", text_el) |
|
|
|
|
# text_el.send_keys(text) |
|
|
|
|
block_obj['data']['text'] = '<p>%s</p>' % text |
|
|
|
|
text_el.click() |
|
|
|
|
text_el.send_keys(text) |
|
|
|
|
block_obj['data']['txt'] = text |
|
|
|
|
# TODO: check image upload |
|
|
|
|
self.check_auto_saving() |
|
|
|
|
|
|
|
|
|
|