
import unittest

from openstack.tests.functional import base


@unittest.skipUnless(base.service_exists(service_type="metering"),
                     "Metering service does not exist")
class TestStatistics(base.BaseFunctionalTest):

    def test_list(self):
        found_something = False
        for met in self.conn.telemetry.meters():
            try:
                stat = next(self.conn.telemetry.statistics(met))
                self.assertIn('period_end', stat)
                found_something = True
            except Exception:
                pass
        self.assertTrue(found_something)


import unittest

from openstack.tests.functional import base


@unittest.skipUnless(base.service_exists(service_type="metering"),
                     "Metering service does not exist")
class TestStatistics(base.BaseFunctionalTest):

    def test_list(self):
        for met in self.conn.telemetry.meters():
            for stat in self.conn.telemetry.statistics(met):
                self.assertTrue(stat.period_end_at is not None)
                break

Fix the telemetry statistics test
Fix the telemetry statistics test

This test worked fine on devstack, but failed on the test gate
because not all meters have statistics.  Look for a meter with
statistics.

Partial-bug: #1665495

Change-Id: Ife0f1f11c70e926801b48000dd0b4e9d863a865f

  
  import unittest
  
  from openstack.tests.functional import base
  
  
  @unittest.skipUnless(base.service_exists(service_type="metering"),
                       "Metering service does not exist")
  class TestStatistics(base.BaseFunctionalTest):
  
      def test_list(self):
-         found_something = False
          for met in self.conn.telemetry.meters():
-             try:
-                 stat = next(self.conn.telemetry.statistics(met))
+             for stat in self.conn.telemetry.statistics(met):
+                 self.assertTrue(stat.period_end_at is not None)
-                 self.assertIn('period_end', stat)
-                 found_something = True
-             except Exception:
-                 pass
+                 break
-         self.assertTrue(found_something)
  
Fix the telemetry statistics test
## Code Before:

import unittest

from openstack.tests.functional import base


@unittest.skipUnless(base.service_exists(service_type="metering"),
                     "Metering service does not exist")
class TestStatistics(base.BaseFunctionalTest):

    def test_list(self):
        found_something = False
        for met in self.conn.telemetry.meters():
            try:
                stat = next(self.conn.telemetry.statistics(met))
                self.assertIn('period_end', stat)
                found_something = True
            except Exception:
                pass
        self.assertTrue(found_something)

## Instruction:
Fix the telemetry statistics test
## Code After:

import unittest

from openstack.tests.functional import base


@unittest.skipUnless(base.service_exists(service_type="metering"),
                     "Metering service does not exist")
class TestStatistics(base.BaseFunctionalTest):

    def test_list(self):
        for met in self.conn.telemetry.meters():
            for stat in self.conn.telemetry.statistics(met):
                self.assertTrue(stat.period_end_at is not None)
                break
