Example #1
0
    def post(self, request, *args, **kwargs):
        username = request.POST.get("uid")
        password = request.POST.get("password")
        xml_string = request.POST.get("xml")

        if not username or not password or not xml_string:
            return HttpResponseBadRequest()

        user = authenticate(username=username, password=password)
        alert_id = None
        error_message = ""
        is_valid = False

        if (not user or not user.groups.filter(
                name=settings.ALERT_CREATORS_GROUP_NAME)):
            raise PermissionDenied

        alert_id, is_valid, error_message = utils.CreateAlert(
            xml_string, username)
        response = {
            "error": error_message,
            "uuid": alert_id,
            "valid": is_valid,
        }

        return HttpResponse(json.dumps(response),
                            content_type="application/json")
Example #2
0
 def test_create_alert_failed(self):
     """Tests alert creation failed for invalid XML tree."""
     uuid, is_valid, error = utils.CreateAlert(self.invalid_alert_content,
                                               self.TEST_USER_NAME)
     self.assertEquals(uuid, None)
     self.assertFalse(is_valid)
     self.assertTrue(error)
Example #3
0
    def test_generate_feed_inactive_alert(self):
        """Tests XML feed with date after alert expiration date.

       Expiration date is 2014-08-10T23:55:12+00:00.
    """
        uuid, _, _ = utils.CreateAlert(self.draft_alert_content,
                                       self.TEST_USER_NAME)
        self.assertFalse(uuid in utils.GenerateFeed())
Example #4
0
  def test_create_alert_created(self):
    """Tests alert created successfully."""
    alert_uuid, is_valid, error = utils.CreateAlert(self.draft_alert_content,
                                                    self.TEST_USER_NAME)
    self.assertTrue(UUID_RE.match(alert_uuid))
    self.assertTrue(is_valid)
    self.assertEqual(error, None)

    alert = models.Alert.objects.get(uuid=alert_uuid)
    alert_dict = utils.ParseAlert(alert.content, "xml", alert.uuid)
    draft_dict = utils.ParseAlert(self.draft_alert_content, "xml", alert.uuid)
    # Remove alert IDs due to their random nature.
    del alert_dict["alert_id"]
    del draft_dict["alert_id"]
    self.assertDictEqual(alert_dict, draft_dict)