Esempio n. 1
0
    def testOneFragment(self):
        """Tests when there is one fragment in the queue."""
        virtual_feed.inject_virtual_feed(self.topic, self.format,
                                         self.header_footer, self.entries_map)
        task = testutil.get_tasks('default', index=0, expected_count=1)
        os.environ['HTTP_X_APPENGINE_TASKNAME'] = task['name']
        self.handle('post')

        event_list = list(main.EventToDeliver.all())
        self.assertEquals(1, len(event_list))
        event = event_list[0]

        # No parent to ensure it's not rate limited by an entity group.
        self.assertEquals(None, event.key().parent())

        self.assertEquals(self.topic, event.topic)
        self.assertEquals(
            '<?xml version="1.0" encoding="utf-8"?>\n'
            '<feed><id>tag:my-id</id>\n\n'
            '<entry>third data</entry>\n'
            '<entry>second data</entry>\n'
            '<entry>first data</entry>\n'
            '</feed>', event.payload)
        self.assertEquals('application/atom+xml', event.content_type)
        self.assertEquals(1, event.max_failures)

        task = testutil.get_tasks('event-delivery', index=0, expected_count=1)
        self.assertEquals(str(event.key()), task['params']['event_key'])
Esempio n. 2
0
    def testMultipleFragments(self):
        """Tests when there is more than one fragment in the queue."""
        virtual_feed.inject_virtual_feed(self.topic, self.format,
                                         self.header_footer, self.entries_map)
        virtual_feed.inject_virtual_feed(self.topic, self.format,
                                         self.header_footer, self.entries_map)
        task = testutil.get_tasks('default', index=0, expected_count=1)
        os.environ['HTTP_X_APPENGINE_TASKNAME'] = task['name']
        self.handle('post')

        event_list = list(main.EventToDeliver.all())
        self.assertEquals(1, len(event_list))
        event = event_list[0]

        self.assertEquals(self.topic, event.topic)
        self.assertEquals(
            '<?xml version="1.0" encoding="utf-8"?>\n'
            '<feed><id>tag:my-id</id>\n\n'
            '<entry>third data</entry>\n'
            '<entry>second data</entry>\n'
            '<entry>first data</entry>\n'
            '<entry>third data</entry>\n'
            '<entry>second data</entry>\n'
            '<entry>first data</entry>\n'
            '</feed>', event.payload)
  def testMultipleFragments(self):
    """Tests when there is more than one fragment in the queue."""
    virtual_feed.inject_virtual_feed(
        self.topic, self.format, self.header_footer, self.entries_map)
    virtual_feed.inject_virtual_feed(
        self.topic, self.format, self.header_footer, self.entries_map)
    task = testutil.get_tasks('default', index=0, expected_count=1)
    os.environ['HTTP_X_APPENGINE_TASKNAME'] = task['name']
    self.handle('post')

    event_list = list(main.EventToDeliver.all())
    self.assertEquals(1, len(event_list))
    event = event_list[0]

    self.assertEquals(self.topic, event.topic)
    self.assertEquals(
      '<?xml version="1.0" encoding="utf-8"?>\n'
      '<feed><id>tag:my-id</id>\n\n'
      '<entry>third data</entry>\n'
      '<entry>second data</entry>\n'
      '<entry>first data</entry>\n'
      '<entry>third data</entry>\n'
      '<entry>second data</entry>\n'
      '<entry>first data</entry>\n'
      '</feed>',
      event.payload)
  def testOneFragment(self):
    """Tests when there is one fragment in the queue."""
    virtual_feed.inject_virtual_feed(
        self.topic, self.format, self.header_footer, self.entries_map)
    task = testutil.get_tasks('default', index=0, expected_count=1)
    os.environ['HTTP_X_APPENGINE_TASKNAME'] = task['name']
    self.handle('post')

    event_list = list(main.EventToDeliver.all())
    self.assertEquals(1, len(event_list))
    event = event_list[0]

    # No parent to ensure it's not rate limited by an entity group.
    self.assertEquals(None, event.key().parent())

    self.assertEquals(self.topic, event.topic)
    self.assertEquals(
      '<?xml version="1.0" encoding="utf-8"?>\n'
      '<feed><id>tag:my-id</id>\n\n'
      '<entry>third data</entry>\n'
      '<entry>second data</entry>\n'
      '<entry>first data</entry>\n'
      '</feed>',
      event.payload)
    self.assertEquals('application/atom+xml', event.content_type)
    self.assertEquals(1, event.max_failures)

    task = testutil.get_tasks('event-delivery', index=0, expected_count=1)
    self.assertEquals(str(event.key()), task['params']['event_key'])
Esempio n. 5
0
    def testMultipleQueues(self):
        """Tests multiple virtual feeds and queues."""
        virtual_feed.inject_virtual_feed(self.topic, self.format,
                                         self.header_footer, self.entries_map)
        virtual_feed.inject_virtual_feed(self.topic2, self.format,
                                         self.header_footer, self.entries_map)
        task1, task2 = testutil.get_tasks('default', expected_count=2)

        os.environ['HTTP_X_APPENGINE_TASKNAME'] = task1['name']
        self.handle('post')

        os.environ['HTTP_X_APPENGINE_TASKNAME'] = task2['name']
        self.handle('post')

        event_list = list(main.EventToDeliver.all())
        self.assertEquals(2, len(event_list))
        self.assertEquals(self.topic, event_list[0].topic)
        self.assertEquals(self.topic2, event_list[1].topic)
  def testMultipleQueues(self):
    """Tests multiple virtual feeds and queues."""
    virtual_feed.inject_virtual_feed(
        self.topic, self.format, self.header_footer, self.entries_map)
    virtual_feed.inject_virtual_feed(
        self.topic2, self.format, self.header_footer, self.entries_map)
    task1, task2 = testutil.get_tasks('default', expected_count=2)

    os.environ['HTTP_X_APPENGINE_TASKNAME'] = task1['name']
    self.handle('post')

    os.environ['HTTP_X_APPENGINE_TASKNAME'] = task2['name']
    self.handle('post')

    event_list = list(main.EventToDeliver.all())
    self.assertEquals(2, len(event_list))
    self.assertEquals(self.topic, event_list[0].topic)
    self.assertEquals(self.topic2, event_list[1].topic)
Esempio n. 7
0
 def testInsertOneFragment(self):
     """Tests inserting one new fragment."""
     virtual_feed.inject_virtual_feed(self.topic, self.format,
                                      self.header_footer, self.entries_map)
     task = testutil.get_tasks('default', index=0, expected_count=1)
     self.assertTrue(task['name'].startswith(
         'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41--'
         'my-version-'))
     results = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task['name'])
     self.assertEquals(1, len(results))
     fragment = results[0]
     self.assertEquals(self.topic, fragment.topic)
     self.assertEquals(self.header_footer, fragment.header_footer)
     self.assertEquals(self.format, fragment.format)
     self.assertEquals(
         '<entry>third data</entry>\n'  # Hash order
         '<entry>second data</entry>\n'
         '<entry>first data</entry>',
         fragment.entries)
 def testInsertOneFragment(self):
   """Tests inserting one new fragment."""
   virtual_feed.inject_virtual_feed(
       self.topic, self.format, self.header_footer, self.entries_map)
   task = testutil.get_tasks('default', index=0, expected_count=1)
   self.assertTrue(task['name'].startswith(
       'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41--'
       'my-version-'))
   results = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task['name'])
   self.assertEquals(1, len(results))
   fragment = results[0]
   self.assertEquals(self.topic, fragment.topic)
   self.assertEquals(self.header_footer, fragment.header_footer)
   self.assertEquals(self.format, fragment.format)
   self.assertEquals(
       '<entry>third data</entry>\n'  # Hash order
       '<entry>second data</entry>\n'
       '<entry>first data</entry>',
       fragment.entries)
Esempio n. 9
0
    def testInsertMultipleFragments(self):
        """Tests inserting multiple fragments on different virtual topics."""
        virtual_feed.inject_virtual_feed(self.topic, self.format,
                                         self.header_footer, self.entries_map)
        virtual_feed.inject_virtual_feed(self.topic2, self.format,
                                         self.header_footer, self.entries_map)

        task1, task2 = testutil.get_tasks('default', expected_count=2)
        self.assertTrue(task1['name'].startswith(
            'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41--'
            'my-version-'))
        self.assertTrue(task2['name'].startswith(
            'fjq-FeedFragment-0449375bf584a7a5d3a09b344a726dead30c3927--'
            'my-version-'))

        virtual_feed.VIRTUAL_FEED_QUEUE.name = \
            'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41-'
        fragment1 = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task1['name'])[0]
        self.assertEquals(self.topic, fragment1.topic)

        virtual_feed.VIRTUAL_FEED_QUEUE.name = \
            'fjq-FeedFragment-0449375bf584a7a5d3a09b344a726dead30c3927-'
        fragment2 = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task2['name'])[0]
        self.assertEquals(self.topic2, fragment2.topic)
Esempio n. 10
0
  def testInsertMultipleFragments(self):
    """Tests inserting multiple fragments on different virtual topics."""
    virtual_feed.inject_virtual_feed(
        self.topic, self.format, self.header_footer, self.entries_map)
    virtual_feed.inject_virtual_feed(
        self.topic2, self.format, self.header_footer, self.entries_map)

    task1, task2 = testutil.get_tasks('default', expected_count=2)
    self.assertTrue(task1['name'].startswith(
        'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41--'
        'my-version-'))
    self.assertTrue(task2['name'].startswith(
        'fjq-FeedFragment-0449375bf584a7a5d3a09b344a726dead30c3927--'
        'my-version-'))

    virtual_feed.VIRTUAL_FEED_QUEUE.name = \
        'fjq-FeedFragment-54124f41c1ea6e67e4beacac85b9f015e6830d41-'
    fragment1 = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task1['name'])[0]
    self.assertEquals(self.topic, fragment1.topic)

    virtual_feed.VIRTUAL_FEED_QUEUE.name = \
        'fjq-FeedFragment-0449375bf584a7a5d3a09b344a726dead30c3927-'
    fragment2 = virtual_feed.VIRTUAL_FEED_QUEUE.pop(task2['name'])[0]
    self.assertEquals(self.topic2, fragment2.topic)