Ejemplo n.º 1
0
 def test_datetime_or_str_or_none(self):
     dts = timeutils.isotime()
     dt = timeutils.parse_isotime(dts)
     self.assertEqual(utils.datetime_or_str_or_none(dt), dt)
     self.assertEqual(utils.datetime_or_str_or_none(None), None)
     self.assertEqual(utils.datetime_or_str_or_none(dts), dt)
     self.assertRaises(ValueError, utils.datetime_or_str_or_none, 'foo')
Ejemplo n.º 2
0
 def test_datetime_or_str_or_none(self):
     dts = timeutils.isotime()
     dt = timeutils.parse_isotime(dts)
     self.assertEqual(utils.datetime_or_str_or_none(dt), dt)
     self.assertIsNone(utils.datetime_or_str_or_none(None))
     self.assertEqual(utils.datetime_or_str_or_none(dts), dt)
     self.assertRaises(ValueError, utils.datetime_or_str_or_none, 'foo')
Ejemplo n.º 3
0
 def test_datetime_or_none(self):
     naive_dt = datetime.datetime.now()
     dt = timeutils.parse_isotime(timeutils.isotime(naive_dt))
     self.assertEqual(utils.datetime_or_none(dt), dt)
     self.assertEqual(
         utils.datetime_or_none(dt),
         naive_dt.replace(tzinfo=iso8601.iso8601.Utc(), microsecond=0))
     self.assertIsNone(utils.datetime_or_none(None))
     self.assertRaises(ValueError, utils.datetime_or_none, 'foo')
Ejemplo n.º 4
0
 def test_datetime_or_none(self):
     naive_dt = datetime.datetime.now()
     dt = timeutils.parse_isotime(timeutils.isotime(naive_dt))
     self.assertEqual(utils.datetime_or_none(dt), dt)
     self.assertEqual(utils.datetime_or_none(dt),
                      naive_dt.replace(tzinfo=iso8601.iso8601.Utc(),
                                       microsecond=0))
     self.assertEqual(utils.datetime_or_none(None), None)
     self.assertRaises(ValueError, utils.datetime_or_none, 'foo')
Ejemplo n.º 5
0
    def test_dt_serializer(self):
        class Obj(object):
            foo = utils.dt_serializer('bar')

        obj = Obj()
        obj.bar = timeutils.parse_isotime('1955-11-05T00:00:00Z')
        self.assertEqual(obj.foo(), '1955-11-05T00:00:00Z')
        obj.bar = None
        self.assertEqual(obj.foo(), None)
        obj.bar = 'foo'
        self.assertRaises(AttributeError, obj.foo)
Ejemplo n.º 6
0
    def test_dt_serializer(self):
        class Obj(object):
            foo = utils.dt_serializer('bar')

        obj = Obj()
        obj.bar = timeutils.parse_isotime('1955-11-05T00:00:00Z')
        self.assertEqual('1955-11-05T00:00:00Z', obj.foo())
        obj.bar = None
        self.assertIsNone(obj.foo())
        obj.bar = 'foo'
        self.assertRaises(AttributeError, obj.foo)
Ejemplo n.º 7
0
 def test_create_port(self):
     pdict = post_get_test_port()
     t1 = datetime.datetime(2000, 1, 1, 0, 0)
     timeutils.set_time_override(t1)
     self.post_json('/ports', pdict)
     result = self.get_json('/ports/%s' % pdict['uuid'])
     self.assertEqual(pdict['uuid'], result['uuid'])
     self.assertFalse(result['updated_at'])
     return_created_at = timeutils.parse_isotime(
                         result['created_at']).replace(tzinfo=None)
     self.assertEqual(t1, return_created_at)
Ejemplo n.º 8
0
 def test_create_port(self, mock_utcnow):
     pdict = post_get_test_port()
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     response = self.post_json('/ports', pdict)
     self.assertEqual(201, response.status_int)
     result = self.get_json('/ports/%s' % pdict['uuid'])
     self.assertEqual(pdict['uuid'], result['uuid'])
     self.assertFalse(result['updated_at'])
     return_created_at = timeutils.parse_isotime(
         result['created_at']).replace(tzinfo=None)
     self.assertEqual(test_time, return_created_at)
Ejemplo n.º 9
0
 def test_create_node(self, mock_utcnow):
     ndict = post_get_test_node()
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     response = self.post_json('/nodes', ndict)
     self.assertEqual(201, response.status_int)
     result = self.get_json('/nodes/%s' % ndict['uuid'])
     self.assertEqual(ndict['uuid'], result['uuid'])
     self.assertFalse(result['updated_at'])
     return_created_at = timeutils.parse_isotime(
             result['created_at']).replace(tzinfo=None)
     self.assertEqual(test_time, return_created_at)
Ejemplo n.º 10
0
    def test_create_chassis(self, mock_utcnow):
        cdict = apiutils.chassis_post_data()
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        response = self.post_json('/chassis', cdict)
        self.assertEqual(201, response.status_int)
        result = self.get_json('/chassis/%s' % cdict['uuid'])
        self.assertEqual(cdict['uuid'], result['uuid'])
        self.assertFalse(result['updated_at'])
        return_created_at = timeutils.parse_isotime(
            result['created_at']).replace(tzinfo=None)
        self.assertEqual(test_time, return_created_at)
Ejemplo n.º 11
0
    def test_create_chassis(self, mock_utcnow):
        cdict = apiutils.chassis_post_data()
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        response = self.post_json('/chassis', cdict)
        self.assertEqual(201, response.status_int)
        result = self.get_json('/chassis/%s' % cdict['uuid'])
        self.assertEqual(cdict['uuid'], result['uuid'])
        self.assertFalse(result['updated_at'])
        return_created_at = timeutils.parse_isotime(
            result['created_at']).replace(tzinfo=None)
        self.assertEqual(test_time, return_created_at)
Ejemplo n.º 12
0
 def test_update_ok(self):
     self.mock_update_node.return_value = self.node
     self.mock_update_node.return_value.updated_at = \
                                "2013-12-03T06:20:41.184720+00:00"
     response = self.patch_json('/nodes/%s' % self.node['uuid'],
                          [{'path': '/instance_uuid',
                            'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc',
                            'op': 'replace'}])
     self.assertEqual(response.content_type, 'application/json')
     self.assertEqual(response.status_code, 200)
     self.assertEqual(self.mock_update_node.return_value.updated_at,
                      timeutils.parse_isotime(response.json['updated_at']))
     self.mock_update_node.assert_called_once_with(mock.ANY, mock.ANY)
Ejemplo n.º 13
0
 def test_update_ok(self):
     self.mock_update_node.return_value = self.node
     self.mock_update_node.return_value.updated_at = \
                                "2013-12-03T06:20:41.184720+00:00"
     response = self.patch_json('/nodes/%s' % self.node['uuid'],
                          [{'path': '/instance_uuid',
                            'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc',
                            'op': 'replace'}])
     self.assertEqual('application/json', response.content_type)
     self.assertEqual(200, response.status_code)
     self.assertEqual(self.mock_update_node.return_value.updated_at,
                      timeutils.parse_isotime(response.json['updated_at']))
     self.mock_update_node.assert_called_once_with(
             mock.ANY, mock.ANY, 'test-topic')
Ejemplo n.º 14
0
 def test_update_byid(self, mock_utcnow):
     extra = {'foo': 'bar'}
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     response = self.patch_json('/ports/%s' % self.pdict['uuid'],
                                [{'path': '/extra/foo',
                                  'value': 'bar',
                                  'op': 'add'}])
     self.assertEqual('application/json', response.content_type)
     self.assertEqual(200, response.status_code)
     result = self.get_json('/ports/%s' % self.pdict['uuid'])
     self.assertEqual(extra, result['extra'])
     return_updated_at = timeutils.parse_isotime(
                         result['updated_at']).replace(tzinfo=None)
     self.assertEqual(test_time, return_updated_at)
Ejemplo n.º 15
0
 def test_update_byid(self):
     extra = {'foo': 'bar'}
     t1 = datetime.datetime(2000, 1, 1, 0, 0)
     timeutils.set_time_override(t1)
     response = self.patch_json('/ports/%s' % self.pdict['uuid'],
                                [{'path': '/extra/foo',
                                  'value': 'bar',
                                  'op': 'add'}])
     self.assertEqual(response.content_type, 'application/json')
     self.assertEqual(response.status_code, 200)
     result = self.get_json('/ports/%s' % self.pdict['uuid'])
     self.assertEqual(result['extra'], extra)
     return_updated_at = timeutils.parse_isotime(
                         result['updated_at']).replace(tzinfo=None)
     self.assertEqual(t1, return_updated_at)
Ejemplo n.º 16
0
    def test_replace_singular(self, mock_utcnow):
        cdict = dbutils.get_test_chassis()
        description = 'chassis-new-description'
        test_time = datetime.datetime(2000, 1, 1, 0, 0)

        mock_utcnow.return_value = test_time
        response = self.patch_json('/chassis/%s' % cdict['uuid'],
                                   [{'path': '/description',
                                     'value': description, 'op': 'replace'}])
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(200, response.status_code)
        result = self.get_json('/chassis/%s' % cdict['uuid'])
        self.assertEqual(description, result['description'])
        return_updated_at = timeutils.parse_isotime(
                            result['updated_at']).replace(tzinfo=None)
        self.assertEqual(test_time, return_updated_at)
Ejemplo n.º 17
0
    def test_replace_singular(self, mock_utcnow):
        cdict = dbutils.get_test_chassis()
        description = 'chassis-new-description'
        test_time = datetime.datetime(2000, 1, 1, 0, 0)

        mock_utcnow.return_value = test_time
        response = self.patch_json('/chassis/%s' % cdict['uuid'],
                                   [{'path': '/description',
                                     'value': description, 'op': 'replace'}])
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(200, response.status_code)
        result = self.get_json('/chassis/%s' % cdict['uuid'])
        self.assertEqual(description, result['description'])
        return_updated_at = timeutils.parse_isotime(
                            result['updated_at']).replace(tzinfo=None)
        self.assertEqual(test_time, return_updated_at)
Ejemplo n.º 18
0
 def test_update_byid(self, mock_utcnow):
     extra = {'foo': 'bar'}
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     response = self.patch_json('/ports/%s' % self.pdict['uuid'],
                                [{
                                    'path': '/extra/foo',
                                    'value': 'bar',
                                    'op': 'add'
                                }])
     self.assertEqual('application/json', response.content_type)
     self.assertEqual(200, response.status_code)
     result = self.get_json('/ports/%s' % self.pdict['uuid'])
     self.assertEqual(extra, result['extra'])
     return_updated_at = timeutils.parse_isotime(
         result['updated_at']).replace(tzinfo=None)
     self.assertEqual(test_time, return_updated_at)
Ejemplo n.º 19
0
 def test_create_port(self, mock_utcnow):
     pdict = post_get_test_port()
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     response = self.post_json('/ports', pdict)
     self.assertEqual(201, response.status_int)
     result = self.get_json('/ports/%s' % pdict['uuid'])
     self.assertEqual(pdict['uuid'], result['uuid'])
     self.assertFalse(result['updated_at'])
     return_created_at = timeutils.parse_isotime(
                         result['created_at']).replace(tzinfo=None)
     self.assertEqual(test_time, return_created_at)
     # Check location header
     self.assertIsNotNone(response.location)
     expected_location = '/v1/ports/%s' % pdict['uuid']
     self.assertEqual(urlparse.urlparse(response.location).path,
                      expected_location)
Ejemplo n.º 20
0
 def test_node_states(self, mock_utcnow):
     fake_state = 'fake-state'
     fake_error = 'fake-error'
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     ndict = dbutils.get_test_node(power_state=fake_state,
                                   target_power_state=fake_state,
                                   provision_state=fake_state,
                                   target_provision_state=fake_state,
                                   provision_updated_at=test_time,
                                   last_error=fake_error)
     self.dbapi.create_node(ndict)
     data = self.get_json('/nodes/%s/states' % ndict['uuid'])
     self.assertEqual(fake_state, data['power_state'])
     self.assertEqual(fake_state, data['target_power_state'])
     self.assertEqual(fake_state, data['provision_state'])
     self.assertEqual(fake_state, data['target_provision_state'])
     prov_up_at = timeutils.parse_isotime(
                     data['provision_updated_at']).replace(tzinfo=None)
     self.assertEqual(test_time, prov_up_at)
     self.assertEqual(fake_error, data['last_error'])
     self.assertFalse(data['console_enabled'])
Ejemplo n.º 21
0
 def test_node_states(self, mock_utcnow):
     fake_state = 'fake-state'
     fake_error = 'fake-error'
     test_time = datetime.datetime(2000, 1, 1, 0, 0)
     mock_utcnow.return_value = test_time
     ndict = dbutils.get_test_node(power_state=fake_state,
                                   target_power_state=fake_state,
                                   provision_state=fake_state,
                                   target_provision_state=fake_state,
                                   provision_updated_at=test_time,
                                   last_error=fake_error)
     self.dbapi.create_node(ndict)
     data = self.get_json('/nodes/%s/states' % ndict['uuid'])
     self.assertEqual(fake_state, data['power_state'])
     self.assertEqual(fake_state, data['target_power_state'])
     self.assertEqual(fake_state, data['provision_state'])
     self.assertEqual(fake_state, data['target_provision_state'])
     prov_up_at = timeutils.parse_isotime(
                     data['provision_updated_at']).replace(tzinfo=None)
     self.assertEqual(test_time, prov_up_at)
     self.assertEqual(fake_error, data['last_error'])
     self.assertFalse(data['console_enabled'])
Ejemplo n.º 22
0
def _convert_timestamps_to_datetimes(image_meta):
    """Returns image with timestamp fields converted to datetime objects."""
    for attr in ['created_at', 'updated_at', 'deleted_at']:
        if image_meta.get(attr):
            image_meta[attr] = timeutils.parse_isotime(image_meta[attr])
    return image_meta
Ejemplo n.º 23
0
def datetime_or_str_or_none(val):
    if isinstance(val, six.string_types):
        return timeutils.parse_isotime(val)
    return datetime_or_none(val)
Ejemplo n.º 24
0
def dt_deserializer(instance, val):
    """A deserializer method for datetime attributes."""
    if val is None:
        return None
    else:
        return timeutils.parse_isotime(val)
Ejemplo n.º 25
0
 def test_dt_deserializer(self):
     dt = timeutils.parse_isotime('1955-11-05T00:00:00Z')
     self.assertEqual(utils.dt_deserializer(None, timeutils.isotime(dt)),
                      dt)
     self.assertIsNone(utils.dt_deserializer(None, None))
     self.assertRaises(ValueError, utils.dt_deserializer, None, 'foo')
Ejemplo n.º 26
0
def datetime_or_str_or_none(val):
    if isinstance(val, basestring):
        return timeutils.parse_isotime(val)
    return datetime_or_none(val)
Ejemplo n.º 27
0
def dt_deserializer(instance, val):
    """A deserializer method for datetime attributes."""
    if val is None:
        return None
    else:
        return timeutils.parse_isotime(val)
Ejemplo n.º 28
0
 def test_dt_deserializer(self):
     dt = timeutils.parse_isotime('1955-11-05T00:00:00Z')
     self.assertEqual(utils.dt_deserializer(None, timeutils.isotime(dt)),
                      dt)
     self.assertEqual(utils.dt_deserializer(None, None), None)
     self.assertRaises(ValueError, utils.dt_deserializer, None, 'foo')
Ejemplo n.º 29
0
def datetime_or_str_or_none(val):
    if isinstance(val, basestring):
        return timeutils.parse_isotime(val)
    return datetime_or_none(val)
Ejemplo n.º 30
0
def datetime_or_str_or_none(val):
    if isinstance(val, six.string_types):
        return timeutils.parse_isotime(val)
    return datetime_or_none(val)
Ejemplo n.º 31
0
def _convert_timestamps_to_datetimes(image_meta):
    """Returns image with timestamp fields converted to datetime objects."""
    for attr in ['created_at', 'updated_at', 'deleted_at']:
        if image_meta.get(attr):
            image_meta[attr] = timeutils.parse_isotime(image_meta[attr])
    return image_meta