~developer-ubuntu-com-dev/developer-ubuntu-com/staging

« back to all changes in this revision

Viewing changes to md_importer/tests/test_link_rewrite.py

  • Committer: David Callé
  • Date: 2016-04-18 21:41:27 UTC
  • mfrom: (137.1.74 trunk)
  • Revision ID: davidc@framli.eu-20160418214127-0c83m4gmlcsh603r
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
from .utils import (
8
8
    db_add_empty_page,
9
9
    is_local_link,
 
10
    PublishedPages,
10
11
    TestLocalBranchImport,
11
12
)
12
13
 
17
18
        self.repo.add_directive('', '')
18
19
        self.assertTrue(self.repo.execute_import_directives())
19
20
        self.assertTrue(self.repo.publish())
20
 
        pages = Page.objects.filter(publisher_is_draft=False)
21
 
        self.assertEqual(pages.count(), 1+2)  # root + 2 articles
 
21
        published_pages = PublishedPages()
 
22
        self.assertTrue(published_pages.has_size(1+2))  # root + 2 articles
22
23
        for article in self.repo.imported_articles:
23
24
            self.assertTrue(isinstance(article, Article))
24
 
            self.assertEqual(article.page.parent, self.root)
 
25
            self.assertEqual(article.article_page.page.parent, self.root)
25
26
            soup = BeautifulSoup(article.html, 'html5lib')
26
27
            for link in soup.find_all('a'):
27
28
                page = self.check_local_link(link.attrs['href'])
29
30
                    page,
30
31
                    msg='Link {} not found. Available pages: {}'.format(
31
32
                        link.attrs['href'],
32
 
                        ', '.join([p.get_absolute_url() for p in pages])))
33
 
                self.assertIn(page, pages)
 
33
                        ', '.join(published_pages.urls)))
 
34
                self.assertIn(page, published_pages.pages)
34
35
            if article.slug == 'file1':
35
36
                for link in soup.find_all('a'):
36
37
                    if not link.has_attr('class') or \
46
47
        self.repo.add_directive('', '')
47
48
        self.assertTrue(self.repo.execute_import_directives())
48
49
        self.assertTrue(self.repo.publish())
49
 
        pages = Page.objects.filter(publisher_is_draft=False)
50
 
        self.assertEqual(pages.count(), 1+2)  # root + 2 articles
 
50
        published_pages = PublishedPages()
 
51
        self.assertTrue(published_pages.has_size(1+2))  # root + 2 articles
51
52
        for article in self.repo.imported_articles:
52
53
            self.assertTrue(isinstance(article, Article))
53
 
            self.assertEqual(article.page.parent, self.root)
 
54
            self.assertEqual(article.article_page.page.parent, self.root)
54
55
            soup = BeautifulSoup(article.html, 'html5lib')
55
56
            for link in soup.find_all('a'):
56
57
                if not link.has_attr('class') or \
57
58
                   'headeranchor-link' not in link.attrs['class']:
58
59
                    page = self.check_local_link(link.attrs['href'])
59
60
                    self.assertIsNone(page)
60
 
                    self.assertNotIn(page, pages)
 
61
                    self.assertNotIn(page, published_pages.pages)
61
62
 
62
63
 
63
64
class TestNoneNotInLinks(TestLocalBranchImport):
67
68
        self.assertFalse(snappy_page.publisher_is_draft)
68
69
        build_apps = db_add_empty_page('Build Apps', snappy_page)
69
70
        self.assertFalse(build_apps.publisher_is_draft)
70
 
        self.assertEqual(
71
 
            3, Page.objects.filter(publisher_is_draft=False).count())
 
71
        published_pages = PublishedPages()
 
72
        self.assertTrue(published_pages.has_size(3))
72
73
        self.repo.add_directive('docs/intro.md', 'snappy/build-apps/current')
73
74
        self.repo.add_directive('docs', 'snappy/build-apps/current')
74
75
        self.assertTrue(self.repo.execute_import_directives())
89
90
        self.assertFalse(snappy_page.publisher_is_draft)
90
91
        build_apps = db_add_empty_page('Build Apps', snappy_page)
91
92
        self.assertFalse(build_apps.publisher_is_draft)
92
 
        self.assertEqual(
93
 
            3, Page.objects.filter(publisher_is_draft=False).count())
 
93
        published_pages = PublishedPages()
 
94
        self.assertTrue(published_pages.has_size(3))
94
95
        self.repo.add_directive('docs/intro.md', 'snappy/build-apps/current')
95
96
        self.repo.add_directive('docs', 'snappy/build-apps/current')
96
97
        self.assertTrue(self.repo.execute_import_directives())