def checkStats(self, metricName, mn, mx): """Check that stats are computed correctly from the database""" engine = repository.engineFactory(config=self.__config) with engine.begin() as conn: metricObj = (repository.getCustomMetricByName( conn, metricName, fields=[schema.metric.c.uid, schema.metric.c.parameters])) stats = repository.getMetricStats(conn, metricObj.uid) self.assertSetEqual(set(stats.keys()), set(("min", "max"))) self.assertAlmostEqual(stats["min"], mn) self.assertAlmostEqual(stats["max"], mx)
def checkStats(self, metricName, mn, mx): """Check that stats are computed correctly from the database""" engine = repository.engineFactory(config=self.__config) with engine.begin() as conn: metricObj = ( repository.getCustomMetricByName(conn, metricName, fields=[schema.metric.c.uid, schema.metric.c.parameters])) stats = repository.getMetricStats(conn, metricObj.uid) self.assertSetEqual(set(stats.keys()), set(("min", "max"))) self.assertAlmostEqual(stats["min"], mn) self.assertAlmostEqual(stats["max"], mx)
def testStats(self): """Tests that stats are computed correctly.""" metricName = "testStats.%i" % int(time.time()) LOGGER.info("Running test with metric name: %s", metricName) self.addCleanup(self._deleteMetric, metricName) # Add custom metric data sock = socket.socket() sock.connect(("localhost", self.plaintextPort)) sock.sendall("%s 5.0 1386201600\n" % metricName) sock.sendall("%s 6.0 1386288000\n" % metricName) sock.sendall("%s 7.0 1386374400\n" % metricName) self.gracefullyCloseSocket(sock) time.sleep(5) for _attempt in xrange(6): try: uid = self.checkMetricCreated(metricName, numRecords=3) LOGGER.info("Metric %s has uid: %s", metricName, uid) break except: time.sleep(10) else: self.fail("Metric not created within a reasonable amount of time.") # Check that stats are computed correctly from the database for _attempt in xrange(6): try: with repository.engineFactory(self.config).connect() as conn: stats = repository.getMetricStats(conn, uid) self.assertSetEqual(set(stats.keys()), set(("min", "max"))) self.assertAlmostEqual(stats["min"], 5.0) self.assertAlmostEqual(stats["max"], 7.0) break except MetricStatisticsNotReadyError: time.sleep(10) else: self.fail( "Metric created, but statistics not ready within a reasonable" " amount of time.")
def testStats(self): """Tests that stats are computed correctly.""" metricName = "testStats.%i" % int(time.time()) LOGGER.info("Running test with metric name: %s", metricName) self.addCleanup(self._deleteMetric, metricName) # Add custom metric data sock = socket.socket() sock.connect(("localhost", self.plaintextPort)) sock.sendall("%s 5.0 1386201600\n" % metricName) sock.sendall("%s 6.0 1386288000\n" % metricName) sock.sendall("%s 7.0 1386374400\n" % metricName) self.gracefullyCloseSocket(sock) time.sleep(5) for _attempt in xrange(6): try: uid = self.checkMetricCreated(metricName, numRecords=3) LOGGER.info("Metric %s has uid: %s", metricName, uid) break except: time.sleep(10) else: self.fail("Metric not created within a reasonable amount of time.") # Check that stats are computed correctly from the database for _attempt in xrange(6): try: with repository.engineFactory(self.config).connect() as conn: stats = repository.getMetricStats(conn, uid) self.assertSetEqual(set(stats.keys()), set(("min", "max"))) self.assertAlmostEqual(stats["min"], 5.0) self.assertAlmostEqual(stats["max"], 7.0) break except MetricStatisticsNotReadyError: time.sleep(10) else: self.fail("Metric created, but statistics not ready within a reasonable" " amount of time.")