-
Notifications
You must be signed in to change notification settings - Fork 5
/
tests_scraping.py
59 lines (51 loc) · 2.21 KB
/
tests_scraping.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-
import unittest
from document_scraper import DocumentScraper
from grammarly_page import GrammarlyLogin
from grammarly_page import GrammarlyNewDocument
from grammarly_page import GrammarlyDocument
import time
class GrammarlyScrapingTests(unittest.TestCase):
def test1(self):
filename = "bs_output_test1.html"
with open(filename, 'r+') as f:
self.data_scrape1 = f.read()
assert len(self.data_scrape1) == 21022
scraper = DocumentScraper(self.data_scrape1)
expected = [("Incorrect spacingwraps after → wraps after".decode("utf-8"))]
result = list(scraper.get_all_warnings_texts())
assert result == expected
def tests_all_in_one(self):
from selenium import webdriver
self.driver = webdriver.Firefox()
filename = "demo_document.txt"
demo_data_text = None
with open(filename, 'r+') as f:
demo_data_text = f.read().decode("utf-8")
page_login = GrammarlyLogin(self.driver)
page_login.make_login('[email protected]', 'test123')
page_new_doc = GrammarlyNewDocument(self.driver)
page_new_doc.make_new_document("")
page_doc = GrammarlyDocument(self.driver)
page_doc.put_title("DEMO DATA TEXT")
page_doc.put_text(demo_data_text)
page_source = GrammarlyDocument(self.driver)
actual_source = page_source.get_page_source()
scraper = DocumentScraper(actual_source)
found_issues = scraper.find_all_issues()
assert len(found_issues) == 14
issues_by_type = scraper.return_issues_by_type()
assert len(issues_by_type) == 2
assert u'_ed4374-plainTextTitle' in issues_by_type
assert u'_ed4374-titleReplacement' in issues_by_type
assert len(issues_by_type['_ed4374-plainTextTitle']) == 3
assert len(issues_by_type['_ed4374-titleReplacement']) == 11
self.driver.maximize_window()
# making a screenshot!:
self.driver.save_screenshot('grammarly_checks.png')
self.driver.get_screenshot_as_file('grammarly_checks2.png')
def tearDown(self):
try: self.driver.close()
except: pass
if __name__ == "__main__":
unittest.main()