def test_compare_micros(self):
     zulu = utils.parse_isotime('2012-02-14T20:53:07.6544')
     east = utils.parse_isotime('2012-02-14T19:53:07.654321-01:00')
     west = utils.parse_isotime('2012-02-14T21:53:07.655+01:00')
     self.assertTrue(east < west)
     self.assertTrue(east < zulu)
     self.assertTrue(zulu < west)
 def test_compare(self):
     zulu = utils.parse_isotime('2012-02-14T20:53:07')
     east = utils.parse_isotime('2012-02-14T20:53:07-01:00')
     west = utils.parse_isotime('2012-02-14T20:53:07+01:00')
     self.assertTrue(east > west)
     self.assertTrue(east > zulu)
     self.assertTrue(zulu > west)
 def test_compare(self):
     zulu = utils.parse_isotime('2012-02-14T20:53:07')
     east = utils.parse_isotime('2012-02-14T20:53:07-01:00')
     west = utils.parse_isotime('2012-02-14T20:53:07+01:00')
     self.assertTrue(east > west)
     self.assertTrue(east > zulu)
     self.assertTrue(zulu > west)
 def test_compare_micros(self):
     zulu = utils.parse_isotime('2012-02-14T20:53:07.6544')
     east = utils.parse_isotime('2012-02-14T19:53:07.654321-01:00')
     west = utils.parse_isotime('2012-02-14T21:53:07.655+01:00')
     self.assertTrue(east < west)
     self.assertTrue(east < zulu)
     self.assertTrue(zulu < west)
Exemplo n.º 5
0
    def _get_filters(self, req):
        """
        Return a dictionary of query param filters from the request

        :param req: the Request object coming from the wsgi layer
        :retval a dict of key/value filters
        """
        filters = {}
        properties = {}

        if req.context.is_admin:
            # Only admin gets to look for non-public images
            filters['is_public'] = self._get_is_public(req)
        else:
            filters['is_public'] = True

        for param in req.str_params:
            if param in SUPPORTED_FILTERS:
                filters[param] = req.str_params.get(param)
            if param.startswith('property-'):
                _param = param[9:]
                properties[_param] = req.str_params.get(param)

        if 'changes-since' in filters:
            isotime = filters['changes-since']
            try:
                filters['changes-since'] = utils.parse_isotime(isotime)
            except ValueError:
                raise exc.HTTPBadRequest(_("Unrecognized changes-since value"))

        if 'protected' in filters:
            value = self._get_bool(filters['protected'])
            if value is None:
                raise exc.HTTPBadRequest(
                    _("protected must be True, or "
                      "False"))

            filters['protected'] = value

        # only allow admins to filter on 'deleted'
        if req.context.is_admin:
            deleted_filter = self._parse_deleted_filter(req)
            if deleted_filter is not None:
                filters['deleted'] = deleted_filter
            elif 'changes-since' not in filters:
                filters['deleted'] = False
        elif 'changes-since' not in filters:
            filters['deleted'] = False

        if len(properties) > 0:
            filters['properties'] = properties

        return filters
Exemplo n.º 6
0
    def _get_filters(self, req):
        """
        Return a dictionary of query param filters from the request

        :param req: the Request object coming from the wsgi layer
        :retval a dict of key/value filters
        """
        filters = {}
        properties = {}

        if req.context.is_admin:
            # Only admin gets to look for non-public images
            filters['is_public'] = self._get_is_public(req)
        else:
            filters['is_public'] = True

        for param in req.params:
            if param in SUPPORTED_FILTERS:
                filters[param] = req.params.get(param)
            if param.startswith('property-'):
                _param = param[9:]
                properties[_param] = req.params.get(param)

        if 'changes-since' in filters:
            isotime = filters['changes-since']
            try:
                filters['changes-since'] = utils.parse_isotime(isotime)
            except ValueError:
                raise exc.HTTPBadRequest(_("Unrecognized changes-since value"))

        if 'protected' in filters:
            value = self._get_bool(filters['protected'])
            if value is None:
                raise exc.HTTPBadRequest(_("protected must be True, or "
                                           "False"))

            filters['protected'] = value

        # only allow admins to filter on 'deleted'
        if req.context.is_admin:
            deleted_filter = self._parse_deleted_filter(req)
            if deleted_filter is not None:
                filters['deleted'] = deleted_filter
            elif 'changes-since' not in filters:
                filters['deleted'] = False
        elif 'changes-since' not in filters:
            filters['deleted'] = False

        if len(properties) > 0:
            filters['properties'] = properties

        return filters
 def test_east_roundtrip(self):
     str = '2012-02-14T20:53:07-07:00'
     east = utils.parse_isotime(str)
     self.assertEquals(east.tzinfo.tzname(None), '-07:00')
     self.assertEquals(utils.isotime(east), str)
 def _do_test(self, str, yr, mon, day, hr, min, sec, micro, shift):
     DAY_SECONDS = 24 * 60 * 60
     timestamp = utils.parse_isotime(str)
     self._instaneous(timestamp, yr, mon, day, hr, min, sec, micro)
     offset = timestamp.tzinfo.utcoffset(None)
     self.assertEqual(offset.seconds + offset.days * DAY_SECONDS, shift)
 def test_west_normalize(self):
     str = '2012-02-14T20:53:07+21:00'
     west = utils.parse_isotime(str)
     normed = utils.normalize_time(west)
     self._instaneous(normed, 2012, 2, 13, 23, 53, 07, 0)
 def test_east_normalize(self):
     str = '2012-02-14T20:53:07-07:00'
     east = utils.parse_isotime(str)
     normed = utils.normalize_time(east)
     self._instaneous(normed, 2012, 2, 15, 03, 53, 07, 0)
 def test_zulu_normalize(self):
     str = '2012-02-14T20:53:07Z'
     zulu = utils.parse_isotime(str)
     normed = utils.normalize_time(zulu)
     self._instaneous(normed, 2012, 2, 14, 20, 53, 07, 0)
 def test_now_roundtrip(self):
     str = utils.isotime()
     now = utils.parse_isotime(str)
     self.assertEquals(now.tzinfo, iso8601.iso8601.UTC)
     self.assertEquals(utils.isotime(now), str)
 def test_east_normalize(self):
     str = '2012-02-14T20:53:07-07:00'
     east = utils.parse_isotime(str)
     normed = utils.normalize_time(east)
     self._instaneous(normed, 2012, 2, 15, 03, 53, 07, 0)
 def test_east_roundtrip(self):
     str = '2012-02-14T20:53:07-07:00'
     east = utils.parse_isotime(str)
     self.assertEquals(east.tzinfo.tzname(None), '-07:00')
     self.assertEquals(utils.isotime(east), str)
 def test_zulu_roundtrip(self):
     str = '2012-02-14T20:53:07Z'
     zulu = utils.parse_isotime(str)
     self.assertEquals(zulu.tzinfo, iso8601.iso8601.UTC)
     self.assertEquals(utils.isotime(zulu), str)
 def test_west_roundtrip(self):
     str = '2012-02-14T20:53:07+11:30'
     west = utils.parse_isotime(str)
     self.assertEquals(west.tzinfo.tzname(None), '+11:30')
     self.assertEquals(utils.isotime(west), str)
 def test_now_roundtrip(self):
     str = utils.isotime()
     now = utils.parse_isotime(str)
     self.assertEquals(now.tzinfo, iso8601.iso8601.UTC)
     self.assertEquals(utils.isotime(now), str)
 def _do_test(self, str, yr, mon, day, hr, min, sec, micro, shift):
     DAY_SECONDS = 24 * 60 * 60
     timestamp = utils.parse_isotime(str)
     self._instaneous(timestamp, yr, mon, day, hr, min, sec, micro)
     offset = timestamp.tzinfo.utcoffset(None)
     self.assertEqual(offset.seconds + offset.days * DAY_SECONDS, shift)
 def test_west_normalize(self):
     str = '2012-02-14T20:53:07+21:00'
     west = utils.parse_isotime(str)
     normed = utils.normalize_time(west)
     self._instaneous(normed, 2012, 2, 13, 23, 53, 07, 0)
 def test_west_roundtrip(self):
     str = '2012-02-14T20:53:07+11:30'
     west = utils.parse_isotime(str)
     self.assertEquals(west.tzinfo.tzname(None), '+11:30')
     self.assertEquals(utils.isotime(west), str)
 def test_zulu_roundtrip(self):
     str = '2012-02-14T20:53:07Z'
     zulu = utils.parse_isotime(str)
     self.assertEquals(zulu.tzinfo, iso8601.iso8601.UTC)
     self.assertEquals(utils.isotime(zulu), str)
 def test_zulu_normalize(self):
     str = '2012-02-14T20:53:07Z'
     zulu = utils.parse_isotime(str)
     normed = utils.normalize_time(zulu)
     self._instaneous(normed, 2012, 2, 14, 20, 53, 07, 0)