Beispiel #1
0
def test_gather_ignores_links(client, root_doc, simple_user):
    user_profile_url = simple_user.get_absolute_url()
    content = """
<ul>
  <li><a href="/en-US/docs/Absolute/Link">Absolute Link</a></li>
  <li><a href="Relative/Link">Relative Link</a></li>
  <li><a href="#later">Later in this page.</a></li>
  <li><a href="%s">Profile Link</a></li>
</ul>
""" % user_profile_url
    new_rev = Revision(document=root_doc,
                       creator=root_doc.current_revision.creator,
                       content=content,
                       created=datetime(2017, 6, 5))
    new_rev.save()
    base_path = root_doc.get_absolute_url()
    html = client.get(base_path, HTTP_HOST=settings.WIKI_HOST).content

    source = LinksSource(base_path)
    requester = mock_requester(content=html)
    storage = mock_storage()
    resources = source.gather(requester, storage)
    assert source.state == source.STATE_DONE
    assert source.freshness == source.FRESH_YES

    expected = ('document', '/en-US/docs/Absolute/Link', {})
    assert expected in resources

    for doc, path, options in resources:
        assert "Relative/Link" not in path
        assert "#later" not in path
        assert user_profile_url not in path
Beispiel #2
0
def revision(save=False, **kwargs):
    """Return an empty revision with enough stuff filled out that it can be
    saved.

    Revision's is_approved=False unless you specify otherwise.

    Requires a users fixture if no creator is provided.

    """
    doc = None
    if 'document' not in kwargs:
        doc = document(save=True)
    else:
        doc = kwargs['document']

    defaults = {
        'summary': 'Some summary',
        'content': 'Some content',
        'comment': 'Some comment',
        'creator': kwargs.get('creator', get_user()),
        'document': doc,
        'tags': '"some", "tags"',
        'toc_depth': 1,
    }

    defaults.update(kwargs)

    rev = Revision(**defaults)
    if save:
        rev.save()
    return rev
    def handle(self, *args, **options):
        # get first user to be the creator
        u = User.objects.all()[0]
        loaded_docs = []
        skipped_docs = []

        for slug in KS_AUTOLOAD_MODULES:
            template_response = requests.get(RAW_TEMPLATE_URL % slug)
            doc = Document(title=slug,
                           slug=slug,
                           category=Document.CATEGORIES[0][0])
            try:
                doc.save()
                loaded_docs.append(slug)
            except SlugCollision:
                # skip modules already in the db
                skipped_docs.append(slug)
                continue
            rev = Revision(document=doc,
                           content=template_response.content,
                           creator=u)
            rev.save()

        print "Loaded docs:"
        for slug in loaded_docs:
            print "%s" % slug
        print "\nSkipped docs that were already loaded:"
        for slug in skipped_docs:
            print "%s" % slug