示例#1
0
async def test_api_get_errors(api_url):
    with pytest.raises(InvalidTokenError):
        async with prismic.get(api_url, "wrong"):
            pass

    with pytest.raises(AuthorizationNeededError):
        async with prismic.get(api_url, ""):
            pass

    with pytest.raises(InvalidURLError):
        async with prismic.get("htt://wrong_on_purpose", ""):
            pass
示例#2
0
 def test_cache(self):
     # Just implement your own cache object by duck-typing
     # https://github.com/prismicio/python-kit/blob/master/prismic/cache.py
     no_cache = NoCache()
     # This api will use the custom cache object
     api = prismic.get('https://micro.prismic.io/api', cache=no_cache)
     self.assertIsNotNone(api)
示例#3
0
 def test_references(self):
     preview_token = 'MC5VcXBHWHdFQUFONDZrbWp4.77-9cDx6C3lgJu-_vXZafO-_vXPvv73vv73vv70777-9Ju-_ve-_vSLvv73vv73vv73vv70O77-977-9Me-_vQ'
     api = prismic.get('https://micro.prismic.io/api', preview_token)
     release_ref = api.get_ref('myrelease')
     response = api.query(predicates.at("document.type", "all"),
                          ref=release_ref)
     self.assertGreaterEqual(response.results_size, 1)
示例#4
0
 def test_images(self):
     api = prismic.get('https://micro.prismic.io/api')
     doc = api.get_by_uid('all', 'all')
     url = doc.get_image('all.image').url
     self.assertEqual(
         url,
         'https://prismic-io.s3.amazonaws.com/micro/e185bb021862c2c03a96bea92e170830908c39a3_thermometer.png')
示例#5
0
    def test_timestamp(self):
        api = prismic.get('https://micro.prismic.io/api')
        doc = api.get_by_uid('all', 'all')

        timestamp = doc.get_timestamp("all.timestamp")
        self.assertEqual(timestamp.as_datetime,
                         datetime.datetime(2017, 1, 16, 7, 25, 35))
示例#6
0
 def test_cache(self):
     # Just implement your own cache object by duck-typing
     # https://github.com/prismicio/python-kit/blob/master/prismic/cache.py
     no_cache = NoCache()
     # This api will use the custom cache object
     api = prismic.get('https://micro.prismic.io/api', cache=no_cache)
     self.assertIsNotNone(api)
示例#7
0
 def test_as_html(self):
     api = prismic.get("http://micro.prismic.io/api")
     doc = api.get_by_uid('all', 'all')
     def link_resolver(document_link):
         return "/document/%s/%s" % (document_link.id, document_link.slug)
     html = doc.as_html(link_resolver)
     self.assertIsNotNone(html)
示例#8
0
async def test_form(api_url):
    async with prismic.get(api_url) as api:
        query = api.form("everything").ref(api.get_master()).query(
            predicates.at("document.type", "all"))
        response = await query.submit()

    assert response.results_size >= 2
示例#9
0
    def test_date_timestamp(self):
        api = prismic.get('https://lesbonneschoses.prismic.io/api')
        response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbl"))\
            .ref(api.get_master()).submit()
        doc = response.documents[0]
        # startgist:d0df1672e30871ab6517:prismic-dateTimestamp.py
        # Date and Timestamp predicates
        date_before = predicates.date_before("my.product.releaseDate", datetime.datetime(2014, 6, 1))
        date_after = predicates.date_after("my.product.releaseDate", datetime.datetime(2014, 1, 1))
        date_Between = predicates.date_between("my.product.releaseDate", datetime.datetime(2014, 1, 1), datetime.datetime(2014, 6, 1))
        day_of_month = predicates.day_of_month("my.product.releaseDate", 14)
        day_of_month_after = predicates.day_of_month_after("my.product.releaseDate", 14)
        day_of_month_before = predicates.day_of_month_before("my.product.releaseDate", 14)
        day_of_week = predicates.day_of_week("my.product.releaseDate", "Tuesday")
        day_of_week_after = predicates.day_of_week_after("my.product.releaseDate", "Wednesday")
        day_of_week_before = predicates.day_of_month_before("my.product.releaseDate", "Wednesday")
        month = predicates.month("my.product.releaseDate", "June")
        month_before = predicates.month_before("my.product.releaseDate", "June")
        month_after = predicates.month_after("my.product.releaseDate", "June")
        year = predicates.year("my.product.releaseDate", 2014)
        hour = predicates.hour("my.product.releaseDate", 12)
        hour_before = predicates.hour_before("my.product.releaseDate", 12)
        hour_after = predicates.hour_after("my.product.releaseDate", 12)

        # Accessing Date and Timestamp fields
        date = doc.get_date("blog-post.date")
        date_year = date and date.as_datetime.year
        update_time = doc.get_timestamp("blog-post.update")
        update_hour = update_time and update_time.as_datetime.hours
        # endgist
        self.assertEqual(date_year, 2013)
示例#10
0
def test_cache(api_url):
    # Just implement your own cache object by duck-typing
    # https://github.com/prismicio/python-kit/blob/master/prismic/cache.py
    no_cache = NoCache()
    # This api will use the custom cache object
    api = prismic.get(api_url, cache=no_cache)
    assert api is not None
示例#11
0
 def test_api_private(self):
     try:
         # This will fail because the token is invalid, but this is how to access a private API
         api = prismic.get('https://micro.prismic.io/api', 'MC5-XXXXXXX-vRfvv70')
         self.fail('Should have thrown')
     except InvalidTokenError as e:
         pass
示例#12
0
    def test_timestamp_html(self):
        api = prismic.get('https://micro.prismic.io/api')
        doc = api.get_by_uid('all', 'all')

        timestamp = doc.get_timestamp("all.timestamp")
        self.assertEqual(timestamp.as_html,
                         '<time>2017-01-16T07:25:35+0000</time>')
示例#13
0
 def test_simplequery(self):
     # startgist:ab49f6c00b8688fe876b:prismic-simplequery.py
     api = prismic.get("https://lesbonneschoses.prismic.io/api")
     response = api.form("everything").ref(api.get_master())\
         .query(predicates.at("document.type", "product"))\
         .submit()
     # endgist
     self.assertEqual(response.results_size, 16)
示例#14
0
 def test_simplequery(self):
     # startgist:ab49f6c00b8688fe876b:prismic-simplequery.py
     api = prismic.get("https://lesbonneschoses.prismic.io/api")
     response = api.form("everything").ref(api.get_master())\
         .query(predicates.at("document.type", "product"))\
         .submit()
     # endgist
     self.assertEqual(response.results_size, 16)
示例#15
0
async def test_references(api_url):
    preview_token = 'MC5VcXBHWHdFQUFONDZrbWp4.77-9cDx6C3lgJu-_vXZafO-_vXPvv73vv73vv70777-9Ju-_ve-_vSLvv73vv73vv73vv70O77-977-9Me-_vQ'
    async with prismic.get(api_url, preview_token) as api:
        release_ref = api.get_ref('myrelease')
        response = await api.query(predicates.at("document.type", "all"),
                                   ref=release_ref)

    assert response.results_size >= 1
示例#16
0
 def test_api_private(self):
     try:
         # startgist:b8844bdf0353cdd46c68:prismic-apiPrivate.py
         # This will fail because the token is invalid, but this is how to access a private API
         api = prismic.get('https://lesbonneschoses.prismic.io/api', 'MC5-XXXXXXX-vRfvv70')
         # endgist
         self.fail('Should have thrown')  # gisthide
     except InvalidTokenError as e:
         pass
示例#17
0
 def test_predicates(self):
     # startgist:771a09b9d88e0fb53705:prismic-predicates.py
     api = prismic.get("http://lesbonneschoses.prismic.io/api")
     response = api.form("everything").ref(api.get_master()) \
         .query(predicates.at("document.type", "product"),
                predicates.date_after("my.blog-post.date", 1401580800000))\
         .submit()
     # endgist
     self.assertEqual(response.results_size, 0)
示例#18
0
 def test_cache(self):
     # startgist:1a43283f77383d57ce02:prismic-cache.py
     # Just implement your own cache object by duck-typing
     # https://github.com/prismicio/python-kit/blob/master/prismic/cache.py
     no_cache = NoCache()
     # This api will use the custom cache object
     api = prismic.get('https://lesbonneschoses.prismic.io/api', cache=no_cache)
     # endgist
     self.assertIsNotNone(api)
示例#19
0
 def test_orderings(self):
     api = prismic.get('https://micro.prismic.io/api')
     response = api.query(predicates.at("document.type", "all"),
                          page_size=2,
                          orderings='[my.all.number desc]')
     # The documents are now ordered using the 'number' field, highest first
     docs = response.documents
     self.assertGreaterEqual(docs[0].get_number('all.number').value,
                             docs[1].get_number('all.number').value)
示例#20
0
async def test_as_html(api_url):
    async with prismic.get(api_url) as api:
        doc = await api.get_by_uid('all', 'all')

    def link_resolver(document_link):
        return "/document/%s/%s" % (document_link.id, document_link.slug)

    html = doc.as_html(link_resolver)
    assert html is not None
示例#21
0
 def test_predicates(self):
     # startgist:771a09b9d88e0fb53705:prismic-predicates.py
     api = prismic.get("http://lesbonneschoses.prismic.io/api")
     response = api.form("everything").ref(api.get_master()) \
         .query(predicates.at("document.type", "product"),
                predicates.date_after("my.blog-post.date", 1401580800000))\
         .submit()
     # endgist
     self.assertEqual(response.results_size, 0)
示例#22
0
 def test_cache(self):
     # startgist:1a43283f77383d57ce02:prismic-cache.py
     # Just implement your own cache object by duck-typing
     # https://github.com/prismicio/python-kit/blob/master/prismic/cache.py
     no_cache = NoCache()
     # This api will use the custom cache object
     api = prismic.get('https://lesbonneschoses.prismic.io/api',
                       cache=no_cache)
     # endgist
     self.assertIsNotNone(api)
示例#23
0
 def test_api_private(self):
     try:
         # startgist:b8844bdf0353cdd46c68:prismic-apiPrivate.py
         # This will fail because the token is invalid, but this is how to access a private API
         api = prismic.get('https://lesbonneschoses.prismic.io/api',
                           'MC5-XXXXXXX-vRfvv70')
         # endgist
         self.fail('Should have thrown')  # gisthide
     except InvalidTokenError as e:
         pass
    def __init__(self, ref_id=None):
        self.api = prismic.get(
            settings.PRISMIC.get("api"), settings.PRISMIC.get("token"))
        self.link_resolver = views.link_resolver
        self.everything_form_name = "everything"

        if ref_id != None:
            self.ref = ref_id
        else:
            self.ref = self.api.get_master()
示例#25
0
async def test_orderings(api_url):
    async with prismic.get(api_url) as api:
        response = await api.query(predicates.at("document.type", "all"),
                                   page_size=2,
                                   orderings='[my.all.number desc]')

    # The documents are now ordered using the 'number' field, highest first
    docs = response.documents
    assert docs[0].get_number('all.number').value >= docs[1].get_number(
        'all.number').value
示例#26
0
 def test_as_html(self):
     api = prismic.get("http://lesbonneschoses.prismic.io/api")
     response = api.form("everything").ref(api.get_master())\
         .query(predicates.at("document.id", "UlfoxUnM0wkXYXbX")).submit()
     # startgist:35dfff6b09283752ac88:prismic-asHtml.py
     def link_resolver(document_link):
         return "/document/%s/%s" % (document_link.id, document_link.slug)
     doc = response.documents[0]
     html = doc.as_html(link_resolver)
     # endgist
     self.assertIsNotNone(html)
示例#27
0
 def test_get_text(self):
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbl"))\
         .ref(api.get_master()).submit()
     doc = response.documents[0]
     # // startgist:f092312c243181a45ebf:prismic-getText.py
     author = doc.get_text("blog-post.author")
     if author is None:
         author = "Anonymous"
     # endgist
     self.assertEqual(author, "John M. Martelle, Fine Pastry Magazine")
示例#28
0
 def test_get_text(self):
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbl"))\
         .ref(api.get_master()).submit()
     doc = response.documents[0]
     # // startgist:f092312c243181a45ebf:prismic-getText.py
     author = doc.get_text("blog-post.author")
     if author is None:
         author = "Anonymous"
     # endgist
     self.assertEqual(author, "John M. Martelle, Fine Pastry Magazine")
示例#29
0
    def test_as_html(self):
        api = prismic.get("http://lesbonneschoses.prismic.io/api")
        response = api.form("everything").ref(api.get_master())\
            .query(predicates.at("document.id", "UlfoxUnM0wkXYXbX")).submit()

        # startgist:35dfff6b09283752ac88:prismic-asHtml.py
        def link_resolver(document_link):
            return "/document/%s/%s" % (document_link.id, document_link.slug)

        doc = response.documents[0]
        html = doc.as_html(link_resolver)
        # endgist
        self.assertIsNotNone(html)
 def __init__(self, request):
     self.api = prismic.get(settings.PRISMIC.get("api"), settings.PRISMIC.get("token"))
     self.link_resolver = views.link_resolver
     self.everything_form_name = "everything"
     self.google_id = self.api.experiments.current()
     preview_ref = request.COOKIES.get(prismic.PREVIEW_COOKIE)
     experiment_ref = self.api.experiments.ref_from_cookie(request.COOKIES.get(prismic.EXPERIMENTS_COOKIE))
     if preview_ref is not None:
         self.ref = preview_ref
     elif experiment_ref is not None:
         self.ref = experiment_ref
     else:
         self.ref = self.api.get_master()
示例#31
0
 def test_orderings(self):
     # startgist:f2c310e66a5c13e225ae:prismic-orderings.py
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything')\
         .ref(api.get_master())\
         .query(predicates.at("document.type", "product"))\
         .pageSize(100)\
         .orderings('[my.product.price desc]')\
         .submit()
     # The products are now ordered by price, highest first
     results = response.results
     # endgist
     self.assertEqual(response.results_per_page, 100)
示例#32
0
 def test_orderings(self):
     # startgist:f2c310e66a5c13e225ae:prismic-orderings.py
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything')\
         .ref(api.get_master())\
         .query(predicates.at("document.type", "product"))\
         .pageSize(100)\
         .orderings('[my.product.price desc]')\
         .submit()
     # The products are now ordered by price, highest first
     results = response.results
     # endgist
     self.assertEqual(response.results_per_page, 100)
示例#33
0
 def test_images(self):
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbO")) \
         .ref(api.get_master()).submit()
     doc = response.documents[0]
     # startgist:4871fb63a54185ee562f:prismic-images.py
     # Accessing image fields
     image = doc.get_image('product.image')
     # By default the 'main' view is returned
     url = image.url
     # endgist
     self.assertEqual(
         url,
         'https://prismic-io.s3.amazonaws.com/lesbonneschoses/f606ad513fcc2a73b909817119b84d6fd0d61a6d.png')
示例#34
0
 def test_references(self):
     # startgist:81d114ef589118245811:prismic-references.py
     preview_token = 'MC5VbDdXQmtuTTB6Z0hNWHF3.c--_vVbvv73vv73vv73vv71EA--_vS_vv73vv70T77-9Ke-_ve-_vWfvv70ebO-_ve-_ve-_vQN377-9ce-_vRfvv70'
     api = prismic.get('https://lesbonneschoses.prismic.io/api', preview_token)
     st_patrick_ref = api.get_ref('St-Patrick specials')
     # Now we'll use this reference for all our calls
     response = api.form("everything")\
         .ref(st_patrick_ref)\
         .query(predicates.at("document.type", "product"))\
         .submit()
     # The documents object contains a Response object with all documents of type "product"
     # including the new "Saint-Patrick's Cupcake"
     # endgist
     self.assertEqual(response.results_size, 17)
示例#35
0
    def test_api_get_errors(self):
        with self.assertRaises(InvalidTokenError):
            prismic.get(self.api_url, "wrong")

        with self.assertRaises(AuthorizationNeededError):
            prismic.get(self.api_url, "")

        with self.assertRaises(InvalidURLError):
            prismic.get("htt://wrong_on_purpose", "")
示例#36
0
    def test_api_get_errors(self):
        with self.assertRaises(InvalidTokenError):
            prismic.get(self.api_url, "wrong")

        with self.assertRaises(AuthorizationNeededError):
            prismic.get(self.api_url, "")

        with self.assertRaises(InvalidURLError):
            prismic.get("htt://wrong_on_purpose", "")
示例#37
0
 def __init__(self, request):
     self.endpoint = settings.PRISMIC.get("api")
     self.api = prismic.get(self.endpoint, settings.PRISMIC.get("token"))
     self.link_resolver = views.link_resolver
     self.everything_form_name = "everything"
     self.google_id = self.api.experiments.current()
     preview_ref = request.COOKIES.get(prismic.PREVIEW_COOKIE)
     experiment_ref = self.api.experiments.ref_from_cookie(
         request.COOKIES.get(prismic.EXPERIMENTS_COOKIE))
     if preview_ref is not None:
         self.ref = preview_ref
     elif experiment_ref is not None:
         self.ref = experiment_ref
     else:
         self.ref = self.api.get_master()
示例#38
0
    def test_get_number(self):
        api = prismic.get('https://lesbonneschoses.prismic.io/api')
        response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbO"))\
            .ref(api.get_master()).submit()
        doc = response.documents[0]
        # startgist:2d89caba900bb897e72b:prismic-getNumber.py
        # Number predicates
        gt = predicates.gt("my.product.price", 10)
        lt = predicates.lt("my.product.price", 20)
        in_range = predicates.in_range("my.product.price", 10, 20)

        # Accessing number fields
        price = doc.get_number("product.price").value
        # endgist
        self.assertEqual(price, 2.5)
示例#39
0
 def test_images(self):
     api = prismic.get('https://lesbonneschoses.prismic.io/api')
     response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbO")) \
         .ref(api.get_master()).submit()
     doc = response.documents[0]
     # startgist:4871fb63a54185ee562f:prismic-images.py
     # Accessing image fields
     image = doc.get_image('product.image')
     # By default the 'main' view is returned
     url = image.url
     # endgist
     self.assertEqual(
         url,
         'https://prismic-io.s3.amazonaws.com/lesbonneschoses/f606ad513fcc2a73b909817119b84d6fd0d61a6d.png'
     )
示例#40
0
 def test_references(self):
     # startgist:81d114ef589118245811:prismic-references.py
     preview_token = 'MC5VbDdXQmtuTTB6Z0hNWHF3.c--_vVbvv73vv73vv73vv71EA--_vS_vv73vv70T77-9Ke-_ve-_vWfvv70ebO-_ve-_ve-_vQN377-9ce-_vRfvv70'
     api = prismic.get('https://lesbonneschoses.prismic.io/api',
                       preview_token)
     st_patrick_ref = api.get_ref('St-Patrick specials')
     # Now we'll use this reference for all our calls
     response = api.form("everything")\
         .ref(st_patrick_ref)\
         .query(predicates.at("document.type", "product"))\
         .submit()
     # The documents object contains a Response object with all documents of type "product"
     # including the new "Saint-Patrick's Cupcake"
     # endgist
     self.assertEqual(response.results_size, 17)
示例#41
0
    def test_get_number(self):
        api = prismic.get('https://lesbonneschoses.prismic.io/api')
        response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbO"))\
            .ref(api.get_master()).submit()
        doc = response.documents[0]
        # startgist:2d89caba900bb897e72b:prismic-getNumber.py
        # Number predicates
        gt = predicates.gt("my.product.price", 10)
        lt = predicates.lt("my.product.price", 20)
        in_range = predicates.in_range("my.product.price", 10, 20)

        # Accessing number fields
        price = doc.get_number("product.price").value
        # endgist
        self.assertEqual(price, 2.5)
示例#42
0
    def test_html_serializer(self):
        api = prismic.get("http://micro.prismic.io/api")
        doc = api.get_by_uid('all', 'all')

        def link_resolver(document_link):
            return "/document/%s/%s" % (document_link.id, document_link.slug)

        def html_serializer(element, content):
            if isinstance(element, prismic.fragments.Block.Image):
                # Don't wrap images in a <p> tag
                return element.get_view().as_html(link_resolver)
            if isinstance(element, prismic.fragments.Span.Hyperlink):
                # Add a class to links
                return """<a class="some-link" href="%s">""" % element.get_url(link_resolver) + content + "</a>"
            return None

        html = doc.get_structured_text("all.stext").as_html(link_resolver, html_serializer)
        self.assertIsNotNone(html)
示例#43
0
async def test_html_serializer(api_url):
    async with prismic.get(api_url) as api:
        doc = await api.get_by_uid('all', 'all')

    def link_resolver(document_link):
        return "/document/%s/%s" % (document_link.id, document_link.slug)

    def html_serializer(element, content):
        if isinstance(element, prismic.fragments.Block.Image):
            # Don't wrap images in a <p> tag
            return element.get_view().as_html(link_resolver)
        if isinstance(element, prismic.fragments.Span.Hyperlink):
            # Add a class to links
            return """<a class="some-link" href="%s">""" % element.get_url(
                link_resolver) + content + "</a>"
        return None

    html = doc.get_structured_text("all.stext").as_html(
        link_resolver, html_serializer)
    assert html is not None
示例#44
0
    def test_date_timestamp(self):
        api = prismic.get('https://lesbonneschoses.prismic.io/api')
        response = api.form('everything').query(predicates.at("document.id", "UlfoxUnM0wkXYXbl"))\
            .ref(api.get_master()).submit()
        doc = response.documents[0]
        # startgist:d0df1672e30871ab6517:prismic-dateTimestamp.py
        # Date and Timestamp predicates
        date_before = predicates.date_before("my.product.releaseDate",
                                             datetime.datetime(2014, 6, 1))
        date_after = predicates.date_after("my.product.releaseDate",
                                           datetime.datetime(2014, 1, 1))
        date_Between = predicates.date_between("my.product.releaseDate",
                                               datetime.datetime(2014, 1, 1),
                                               datetime.datetime(2014, 6, 1))
        day_of_month = predicates.day_of_month("my.product.releaseDate", 14)
        day_of_month_after = predicates.day_of_month_after(
            "my.product.releaseDate", 14)
        day_of_month_before = predicates.day_of_month_before(
            "my.product.releaseDate", 14)
        day_of_week = predicates.day_of_week("my.product.releaseDate",
                                             "Tuesday")
        day_of_week_after = predicates.day_of_week_after(
            "my.product.releaseDate", "Wednesday")
        day_of_week_before = predicates.day_of_month_before(
            "my.product.releaseDate", "Wednesday")
        month = predicates.month("my.product.releaseDate", "June")
        month_before = predicates.month_before("my.product.releaseDate",
                                               "June")
        month_after = predicates.month_after("my.product.releaseDate", "June")
        year = predicates.year("my.product.releaseDate", 2014)
        hour = predicates.hour("my.product.releaseDate", 12)
        hour_before = predicates.hour_before("my.product.releaseDate", 12)
        hour_after = predicates.hour_after("my.product.releaseDate", 12)

        # Accessing Date and Timestamp fields
        date = doc.get_date("blog-post.date")
        date_year = date and date.as_datetime.year
        update_time = doc.get_timestamp("blog-post.update")
        update_hour = update_time and update_time.as_datetime.hours
        # endgist
        self.assertEqual(date_year, 2013)
示例#45
0
    def test_html_serializer(self):
        # startgist:7314e2bf9d81e750280f:prismic-htmlSerializer.py
        api = prismic.get("http://lesbonneschoses.prismic.io/api")
        response = api.form("everything").ref(api.get_master()) \
            .query(predicates.at("document.id", "UlfoxUnM0wkXYXbX")).submit()

        def link_resolver(document_link):
            return "/document/%s/%s" % (document_link.id, document_link.slug)

        def html_serializer(element, content):
            if isinstance(element, prismic.fragments.Block.Image):
                # Don't wrap images in a <p> tag
                return element.get_view().as_html(link_resolver)
            if isinstance(element, prismic.fragments.Span.Hyperlink):
                # Add a class to links
                return """<a class="some-link" href="%s">""" % element.get_url(link_resolver) + content + "</a>"
            return None

        doc = response.documents[0]
        html = doc.get_structured_text("blog-post.body").as_html(link_resolver, html_serializer)
        # endgist
        self.assertIsNotNone(html)
示例#46
0
    def test_html_serializer(self):
        # startgist:7314e2bf9d81e750280f:prismic-htmlSerializer.py
        api = prismic.get("http://lesbonneschoses.prismic.io/api")
        response = api.form("everything").ref(api.get_master()) \
            .query(predicates.at("document.id", "UlfoxUnM0wkXYXbX")).submit()

        def link_resolver(document_link):
            return "/document/%s/%s" % (document_link.id, document_link.slug)

        def html_serializer(element, content):
            if isinstance(element, prismic.fragments.Block.Image):
                # Don't wrap images in a <p> tag
                return element.get_view().as_html(link_resolver)
            if isinstance(element, prismic.fragments.Span.Hyperlink):
                # Add a class to links
                return """<a class="some-link" href="%s">""" % element.get_url(
                    link_resolver) + content + "</a>"
            return None

        doc = response.documents[0]
        html = doc.get_structured_text("blog-post.body").as_html(
            link_resolver, html_serializer)
        # endgist
        self.assertIsNotNone(html)
示例#47
0
 def setUp(self):
     super(ApiIntegrationTestCase, self).setUp()
     self.api = prismic.get(self.api_url, self.token)
示例#48
0
    def test_timestamp_html(self):
        api = prismic.get('https://micro.prismic.io/api')
        doc = api.get_by_uid('all', 'all')

        timestamp = doc.get_timestamp("all.timestamp")
        self.assertEqual(timestamp.as_html, '<time>2017-01-16T07:25:35+0000</time>')
示例#49
0
    def test_timestamp(self):
        api = prismic.get('https://micro.prismic.io/api')
        doc = api.get_by_uid('all', 'all')

        timestamp = doc.get_timestamp("all.timestamp")
        self.assertEqual(timestamp.as_datetime, datetime.datetime(2017, 1, 16, 7, 25, 35))
示例#50
0
 def test_api(self):
     api = prismic.get("https://micro.prismic.io/api")
     self.assertIsNotNone(api)
示例#51
0
 def test_form(self):
     api = prismic.get("https://micro.prismic.io/api")
     response = api.form("everything").ref(api.get_master())\
         .query(predicates.at("document.type", "all"))\
         .submit()
     self.assertGreaterEqual(response.results_size, 2)
示例#52
0
 def test_api(self):
     # startgist:4115e45d6b57cfbed844:prismic-api.py
     api = prismic.get("https://lesbonneschoses.cdn.prismic.io/api")
     # endgist
     self.assertIsNotNone(api)
示例#53
0
 def test_references(self):
     preview_token = 'MC5VcXBHWHdFQUFONDZrbWp4.77-9cDx6C3lgJu-_vXZafO-_vXPvv73vv73vv70777-9Ju-_ve-_vSLvv73vv73vv73vv70O77-977-9Me-_vQ'
     api = prismic.get('https://micro.prismic.io/api', preview_token)
     release_ref = api.get_ref('myrelease')
     response = api.query(predicates.at("document.type", "all"), ref=release_ref)
     self.assertGreaterEqual(response.results_size, 1)
示例#54
0
 def test_orderings(self):
     api = prismic.get('https://micro.prismic.io/api')
     response = api.query(predicates.at("document.type", "all"), page_size=2, orderings='[my.all.number desc]')
     # The documents are now ordered using the 'number' field, highest first
     docs = response.documents
     self.assertGreaterEqual(docs[0].get_number('all.number').value, docs[1].get_number('all.number').value)
示例#55
0
 def test_get_number(self):
     api = prismic.get('https://micro.prismic.io/api')
     doc = api.get_by_uid('all', 'all')
     price = doc.get_number("all.number").value
     self.assertEqual(price, 20.0)
示例#56
0
 def test_get_text(self):
     api = prismic.get('https://micro.prismic.io/api')
     doc = api.get_by_uid('all', 'all')
     author = doc.get_text("all.text")
     self.assertEqual(author, "all")