Пример #1
0
 def test_convert(self, mock_convert):
     samples = [
         FakeSample(timestamp=three_hours_ago, counter_volume=1),
         FakeSample(timestamp=two_hours_ago, counter_volume=1)
     ]
     r = Reading(samples, four_hours_ago, now)
     self.assertEquals(r.value, 1.0)
     r.convert('some_conversion')
     self.assertEquals(r.value, 'converted')
Пример #2
0
 def test_convert(self, mock_convert):
     samples = [
         FakeSample(timestamp=three_hours_ago, counter_volume=1),
         FakeSample(timestamp=two_hours_ago, counter_volume=1)
     ]
     r = Reading(samples, four_hours_ago, now)
     self.assertEquals(r.value, 1.0)
     r.convert('some_conversion')
     self.assertEquals(r.value, 'converted')
Пример #3
0
    def test_guage_reading(self):
        # Test no post/pre samples
        samples = [
            FakeSample(counter_volume=1, timestamp=three_hours_ago),
            FakeSample(counter_volume=1, timestamp=two_hours_ago)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(r.value, 1.0)

        # Test with pre/post samples
        samples = [
            FakeSample(counter_volume=1, timestamp=five_hours_ago),
            FakeSample(counter_volume=1, timestamp=three_hours_ago),
            FakeSample(counter_volume=1, timestamp=two_hours_ago),
            FakeSample(counter_volume=1, timestamp=now)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(r.value, 3.0)
Пример #4
0
    def test_split_samples(self):
        # Test Samples with before, during, and after
        samples = [
            FakeSample(timestamp=five_hours_ago),
            FakeSample(timestamp=four_hours_ago),
            FakeSample(timestamp=three_hours_ago),
            FakeSample(timestamp=two_hours_ago),
            FakeSample(timestamp=one_hour_ago),
            FakeSample(timestamp=now)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(4, len(r.samples))
        # Check during samples and their order
        expected_timestamps = [
            four_hours_ago,
            three_hours_ago,
            two_hours_ago,
            one_hour_ago
        ]
        for i, sample in enumerate(r.samples):
            self.assertEquals(expected_timestamps[i], sample.timestamp)
        # Resource should exist before start
        self.assertTrue(r.resource_existed_before())
        # Resource should exist after stop
        self.assertTrue(r.resource_existed_after())

        # Test no prior samples
        samples = [
            FakeSample(timestamp=three_hours_ago),
            FakeSample(timestamp=now)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(1, len(r.samples))
        self.assertEquals(three_hours_ago, r.samples[0].timestamp)
        self.assertFalse(r.resource_existed_before())
        self.assertTrue(r.resource_existed_after())

        # Test no post samples
        samples = [
            FakeSample(timestamp=five_hours_ago),
            FakeSample(timestamp=three_hours_ago)
        ]
        r = Reading(samples, four_hours_ago, two_hours_ago)
        self.assertEquals(1, len(r.samples))
        self.assertEquals(three_hours_ago, r.samples[0].timestamp)
        self.assertTrue(r.resource_existed_before())
        self.assertFalse(r.resource_existed_after())
Пример #5
0
 def test_delta_reading(self):
     # Test with both pre and post samples
     samples = [
         FakeSample(counter_type='delta',
                    counter_volume=1,
                    timestamp=five_hours_ago),
         FakeSample(counter_type='delta',
                    counter_volume=2,
                    timestamp=four_hours_ago),
         FakeSample(counter_type='delta',
                    counter_volume=3,
                    timestamp=three_hours_ago),
         FakeSample(counter_type='delta',
                    counter_volume=4,
                    timestamp=two_hours_ago),
         FakeSample(counter_type='delta',
                    counter_volume=5,
                    timestamp=one_hour_ago)
     ]
     r = Reading(samples, four_hours_ago, two_hours_ago)
     self.assertEquals(r.value, 9)
Пример #6
0
    def test_split_samples(self):
        # Test Samples with before, during, and after
        samples = [
            FakeSample(timestamp=five_hours_ago),
            FakeSample(timestamp=four_hours_ago),
            FakeSample(timestamp=three_hours_ago),
            FakeSample(timestamp=two_hours_ago),
            FakeSample(timestamp=one_hour_ago),
            FakeSample(timestamp=now)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(4, len(r.samples))
        # Check during samples and their order
        expected_timestamps = [
            four_hours_ago, three_hours_ago, two_hours_ago, one_hour_ago
        ]
        for i, sample in enumerate(r.samples):
            self.assertEquals(expected_timestamps[i], sample.timestamp)
        # Resource should exist before start
        self.assertTrue(r.resource_existed_before())
        # Resource should exist after stop
        self.assertTrue(r.resource_existed_after())

        # Test no prior samples
        samples = [
            FakeSample(timestamp=three_hours_ago),
            FakeSample(timestamp=now)
        ]
        r = Reading(samples, four_hours_ago, one_hour_ago)
        self.assertEquals(1, len(r.samples))
        self.assertEquals(three_hours_ago, r.samples[0].timestamp)
        self.assertFalse(r.resource_existed_before())
        self.assertTrue(r.resource_existed_after())

        # Test no post samples
        samples = [
            FakeSample(timestamp=five_hours_ago),
            FakeSample(timestamp=three_hours_ago)
        ]
        r = Reading(samples, four_hours_ago, two_hours_ago)
        self.assertEquals(1, len(r.samples))
        self.assertEquals(three_hours_ago, r.samples[0].timestamp)
        self.assertTrue(r.resource_existed_before())
        self.assertFalse(r.resource_existed_after())
Пример #7
0
 def test_init(self, m_split):
     r = Reading([], four_hours_ago, one_hour_ago)
     self.assertEquals(r.start, four_hours_ago)
     self.assertEquals(r.stop, one_hour_ago)
Пример #8
0
    def test_metadata(self):
        # Test no samples:
        with mock.patch('usage.reading.Reading._split_samples'):
            samples = []
            r = Reading(samples, five_hours_ago, now)
            self.assertTrue(r.metadata is None)

        # Test samples with no status fields in resource metadata
        samples = [
            FakeSample(timestamp=three_hours_ago,
                       resource_metadata={'test': 'first'}),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={'test': 'middle'}),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={'test': 'last'})
        ]
        r = Reading(samples, five_hours_ago, now)
        self.assertEquals(r.metadata['test'], 'last')

        # Test samples with status fields.
        # Last sample active using key 'state'
        samples = [
            FakeSample(timestamp=three_hours_ago,
                       resource_metadata={
                           'test': 'first',
                           'state': 'active'
                       }),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={
                           'test': 'middle',
                           'state': 'resized'
                       }),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={
                           'test': 'last',
                           'state': 'active'
                       })
        ]
        r = Reading(samples, five_hours_ago, now)
        self.assertEquals(r.metadata['test'], 'last')

        # Test samples with status fields.
        # First sample active using key 'status'
        samples = [
            FakeSample(timestamp=three_hours_ago,
                       resource_metadata={
                           'test': 'first',
                           'status': 'active'
                       }),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={
                           'test': 'middle',
                           'status': 'deleting'
                       }),
            FakeSample(timestamp=one_hour_ago,
                       resource_metadata={
                           'test': 'last',
                           'status': 'deleted'
                       })
        ]
        r = Reading(samples, five_hours_ago, now)
        self.assertEquals(r.metadata['test'], 'first')

        # Test all samples deleted using mixed status keys
        samples = [
            FakeSample(timestamp=three_hours_ago,
                       resource_metadata={
                           'test': 'first',
                           'status': 'deleting'
                       }),
            FakeSample(timestamp=two_hours_ago,
                       resource_metadata={
                           'test': 'middle',
                           'state': 'deleting'
                       }),
            FakeSample(timestamp=one_hour_ago,
                       resource_metadata={
                           'test': 'last',
                           'status': 'deleted'
                       })
        ]
        r = Reading(samples, five_hours_ago, now)
        self.assertEquals(r.metadata['test'], 'last')
Пример #9
0
 def test_unknown_meter(self):
     samples = [FakeSample(counter_type='unknown', timestamp=two_hours_ago)]
     with self.assertRaises(UnknownCounterTypeError):
         Reading(samples, two_hours_ago, now)
Пример #10
0
 def test_no_samples_reading(self):
     with self.assertRaises(NoSamplesError):
         Reading([], one_hour_ago, now)
Пример #11
0
 def test_project_id(self):
     samples = [FakeSample(timestamp=one_hour_ago)]
     r = Reading(samples, two_hours_ago, now)
     self.assertEquals(r.project_id, 'project_id')
Пример #12
0
 def test_meter_name(self):
     samples = [FakeSample(timestamp=one_hour_ago)]
     r = Reading(samples, two_hours_ago, now)
     self.assertEquals(r.meter_name, 'meter')