'Various things sould return a 404:
* invalid primary key in the URL
* token doesn\'t start with \'subscribe\'
* subscription doesn\'t exist
* token doesn\'t match the subscription'

def test_404(self):

    sub = PushSubscription.objects.create(topic='topic', hub='hub', verified=False)
    verify_token = sub.generate_token('subscribe')
    response = self.client.get(reverse('pubsubhubbub_callback', args=(0,)), {'hub.mode': 'subscribe', 'hub.topic': sub.topic, 'hub.challenge': 'challenge', 'hub.lease_seconds': 2000, 'hub.verify_token': verify_token[1:]})
    self.assertEquals(response.status_code, 404)
    self.assertEquals(len(self.signals), 0)
    response = self.client.get(reverse('pubsubhubbub_callback', args=(sub.pk,)), {'hub.mode': 'subscribe', 'hub.topic': sub.topic, 'hub.challenge': 'challenge', 'hub.lease_seconds': 2000, 'hub.verify_token': verify_token[1:]})
    self.assertEquals(response.status_code, 404)
    self.assertEquals(len(self.signals), 0)
    response = self.client.get(reverse('pubsubhubbub_callback', args=(sub.pk,)), {'hub.mode': 'subscribe', 'hub.topic': (sub.topic + 'extra'), 'hub.challenge': 'challenge', 'hub.lease_seconds': 2000, 'hub.verify_token': verify_token})
    self.assertEquals(response.status_code, 404)
    self.assertEquals(len(self.signals), 0)
    response = self.client.get(reverse('pubsubhubbub_callback', args=(sub.pk,)), {'hub.mode': 'subscribe', 'hub.topic': sub.topic, 'hub.challenge': 'challenge', 'hub.lease_seconds': 2000, 'hub.verify_token': verify_token[:(-5)]})
    self.assertEquals(response.status_code, 404)
    self.assertEquals(len(self.signals), 0)
