~developer-ubuntu-com-dev/developer-ubuntu-com/get-gadget-snaps

« back to all changes in this revision

Viewing changes to md_importer/tests/test_snappy_import.py

Fix #1568861

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from cms.api import publish_pages
2
2
from cms.models import Page
3
3
 
4
 
from md_importer.importer import DEFAULT_LANG
5
 
from md_importer.importer.repo import SnappyRepo
6
 
from md_importer.importer.article import SnappyArticle
 
4
from md_importer.importer.repo import Repo
 
5
from md_importer.importer.article import Article
7
6
from .utils import (
8
7
    db_add_empty_page,
 
8
    PublishedPages,
9
9
    TestLocalBranchImport,
10
10
)
11
11
 
16
16
        snappy_page = db_add_empty_page('Snappy', self.root)
17
17
        guides = db_add_empty_page('Guides', snappy_page)
18
18
        publish_pages([snappy_page, guides])
19
 
        self.assertTrue(isinstance(self.repo, SnappyRepo))
 
19
        self.assertTrue(isinstance(self.repo, Repo))
20
20
        self.repo.add_directive('docs', 'snappy/guides/devel')
21
21
        self.assertTrue(self.repo.execute_import_directives())
22
22
        self.assertTrue(self.repo.publish())
23
23
        for article in self.repo.imported_articles:
24
 
            self.assertTrue(isinstance(article, SnappyArticle))
 
24
            self.assertTrue(isinstance(article, Article))
25
25
        self.assertGreater(len(self.repo.pages), 0)
26
26
        devel = Page.objects.filter(parent=guides.get_public_object())
27
27
        self.assertEqual(devel.count(), 1)
28
 
        for page in Page.objects.filter(publisher_is_draft=False):
 
28
        published_pages = PublishedPages()
 
29
        for page in published_pages.pages:
29
30
            if page not in [self.root, snappy_page, guides, devel[0]]:
30
31
                self.assertEqual(page.parent, devel[0])
31
 
 
32
 
 
33
 
class TestSnappyCurrentImport(TestLocalBranchImport):
34
 
    def runTest(self):
35
 
        self.create_repo('data/snappy-test')
36
 
        snappy_page = db_add_empty_page('Snappy', self.root)
37
 
        guides = db_add_empty_page('Guides', snappy_page)
38
 
        publish_pages([snappy_page, guides])
39
 
        self.assertTrue(isinstance(self.repo, SnappyRepo))
40
 
        self.repo.add_directive('docs', 'snappy/guides/current')
41
 
        self.assertTrue(self.repo.execute_import_directives())
42
 
        self.assertTrue(self.repo.publish())
43
 
        number_of_articles = len(self.repo.imported_articles)
44
 
        for article in self.repo.imported_articles:
45
 
            self.assertTrue(isinstance(article, SnappyArticle))
46
 
        self.assertGreater(number_of_articles, 0)
47
 
        pages = Page.objects.filter(publisher_is_draft=False)
48
 
        current_search = [
49
 
            a for a in pages
50
 
            if a.get_slug('current') and
51
 
            a.get_absolute_url().endswith('snappy/guides/current/')]
52
 
        self.assertEqual(len(current_search), 1)
53
 
        current = current_search[0]
54
 
        nav_pages = [self.root, snappy_page, guides, current]
55
 
        self.assertEqual(
56
 
            number_of_articles, pages.count()-len(nav_pages))
57
 
        for page in [a for a in pages if a not in nav_pages]:
58
 
            if page.get_redirect(DEFAULT_LANG):
59
 
                self.assertEqual(page.parent, guides)
60
 
            else:
61
 
                self.assertEqual(page.parent, current)