def test_build_collection_token(self): collection = self.site.build_reviews_collection('title', 'articleId', 'https://livefyre.com') token = collection.build_collection_meta_token() self.assertTrue(token) self.assertEqual(jwt.decode(token, self.SITE_KEY)['type'], 'reviews') collection = self.site.build_blog_collection('title', 'articleId', 'https://livefyre.com') token = collection.build_collection_meta_token() self.assertEqual(jwt.decode(token, self.SITE_KEY)['type'], 'liveblog') topics = [Topic.create(self.network, '1', '1')] collection = self.site.build_comments_collection(self.TITLE, self.ARTICLE_ID, self.URL) collection.data.topics = topics self.assertTrue(collection.is_network_issued()) token = collection.build_collection_meta_token() if pyver < 2.7: pass elif pyver < 3.0: with self.assertRaisesRegexp(DecodeError, 'Signature verification failed'): jwt.decode(token, self.site.data.key) else: with self.assertRaisesRegex(DecodeError, 'Signature verification failed'): jwt.decode(token, self.site.data.key) decoded_token = jwt.decode(token, self.network.data.key) self.assertEqual(self.network.urn, decoded_token['iss'])
def create_or_update_topics(core, topic_map): topics = [] if pyver < 3.0: topics = [Topic.create(core, k, v) for k, v in topic_map.iteritems()] else: topics = [Topic.create(core, k, v) for k, v in topic_map.items()] for topic in topics: assert topic.label and len(topic.label) <= 128, 'topic label should not be empty and have 128 or less characters' url = get_url(core) + PersonalizedStream.MULTIPLE_TOPIC_PATH.format(core.urn) form = json.dumps({'topics': [x.to_dict() for x in topics]}) headers = get_lf_token_header(core) headers['Content-Type'] = 'application/json' response = requests.post(url, data = form, headers = headers) evaluate_response(response)['data'] return topics
def test_topic_stream_cursor(self): network = Livefyre.get_network(self.NETWORK_NAME, self.NETWORK_KEY) date = datetime.datetime.now() topic_id = 'topic' label = 'label' ts_resource = 'urn:livefyre:{0}:topic={1}:topicStream'.format(network.data.name, topic_id) topic = Topic.create(network, topic_id, label) cursor = CursorFactory.get_topic_stream_cursor(network, topic) self.assertEqual(ts_resource, cursor.data.resource) cursor = CursorFactory.get_topic_stream_cursor(network, topic, self.LIMIT, date) self.assertEqual(ts_resource, cursor.data.resource) self.assertEqual(self.LIMIT, cursor.data.limit)
def test_func(self): topic = Topic(self.ID, self.LABEL, self.CREATED_AT, self.MODIFIED_AT) self.assertEqual(self.DICT, topic.to_dict()) topic2 = Topic.serialize_from_json(self.DICT) self.assertEqual(self.ID, topic2.topic_id) self.assertEqual(self.LABEL, topic2.label) self.assertEqual(self.CREATED_AT, topic2.created_at) self.assertEqual(self.MODIFIED_AT, topic2.modified_at) topic3 = json.dumps(topic2) self.assertEqual(json.dumps(self.DICT), topic3) topic = topic.create(Livefyre.get_network(self.NETWORK_NAME, self.NETWORK_KEY), "ID", "LABEL") self.assertEqual(topic.truncated_id, "ID")