[Git][NTPsec/ntpsec][master] Revert "branch change", a temporary commit I forgot to rebase.

Ian Bruene gitlab at mg.gitlab.com
Tue Sep 12 19:08:29 UTC 2017


Ian Bruene pushed to branch master at NTPsec / ntpsec


Commits:
d6d5abfa by Ian Bruene at 2017-09-12T19:07:39+00:00
Revert "branch change", a temporary commit I forgot to rebase.

- - - - -


3 changed files:

- pylib/statfiles.py
- tests/pylib/jigs.py
- tests/pylib/test_statfiles.py


Changes:

=====================================
pylib/statfiles.py
=====================================
--- a/pylib/statfiles.py
+++ b/pylib/statfiles.py
@@ -59,53 +59,6 @@ class NTPStats:
         "get Unix time from converted line."
         return float(line.split()[0])
 
-    @staticmethod
-    def percentiles(percents, values):
-        "Return given percentiles of a given row in a given set of entries."
-        "assuming values are already split and sorted"
-        ret = {}
-        length = len(values)
-        if 1 >= length:
-            # uh, oh...
-            if 1 == length:
-                # just one data value, set all to that one value
-                v = values[0]
-            else:
-                # no data, set all to zero
-                v = 0
-            for perc in percents:
-                ret["p" + str(perc)] = v
-        else:
-            for perc in percents:
-                if perc == 100:
-                    ret["p100"] = values[length - 1]
-                else:
-                    ret["p" + str(perc)] = values[int(length * (perc/100))]
-        return ret
-
-    @staticmethod
-    def ip_label(key):
-        "Produce appropriate label for an IP address."
-        # If it's a new-style NTPsep clock label, pass it through,
-        # Otherwise we expect it to be an IP address and the next guard fires
-        if key[0].isdigit():
-            # TO BE REMOVED SOMEDAY
-            # Clock address - only possible if we're looking at a logfile made
-            # by NTP Classic or an NTPsec version configured with
-            # --enable-classic-mode.  Nasty that we have to emit a numeric
-            # driver type here.
-            if key.startswith("127.127."):
-                (_, _, t, u) = key.split(".")
-                return "REFCLOCK(type=%s,unit=%s)" % (t, u)
-            # Ordinary IP address - replace with primary hostname.
-            # Punt if the lookup fails.
-            try:
-                (hostname, _, _) = socket.gethostbyaddr(key)
-                return hostname
-            except socket.herror:
-                pass
-        return key      # Someday, be smarter than this.
-
     def __init__(self, statsdir, sitename=None,
                  period=None, starttime=None, endtime=None):
         "Grab content of logfiles, sorted by timestamp."
@@ -151,7 +104,6 @@ class NTPStats:
                         lines += open(logpart, 'r').readlines()
             except IOError:
                 sys.stderr.write("ntpviz: WARNING: could not read %s\n"
-
                                  % logpart)
                 pass
 
@@ -186,6 +138,29 @@ class NTPStats:
             lines1.sort()
             setattr(self, stem, lines1)
 
+    def percentiles(self, percents, values):
+        "Return given percentiles of a given row in a given set of entries."
+        "assuming values are already split and sorted"
+        ret = {}
+        length = len(values)
+        if 1 >= length:
+            # uh, oh...
+            if 1 == length:
+                # just one data value, set all to that one value
+                v = values[0]
+            else:
+                # no data, set all to zero
+                v = 0
+            for perc in percents:
+                ret["p" + str(perc)] = v
+        else:
+            for perc in percents:
+                if perc == 100:
+                    ret["p100"] = values[length - 1]
+                else:
+                    ret["p" + str(perc)] = values[int(length * (perc/100))]
+        return ret
+
     def peersplit(self):
         "Return a dictionary mapping peerstats IPs to entry subsets."
         "This is very expensive, so cache the result"
@@ -231,6 +206,28 @@ class NTPStats:
                 pass
         return tempsmap
 
+    def ip_label(self, key):
+        "Produce appropriate label for an IP address."
+        # If it's a new-style NTPsep clock label, pass it through,
+        # Otherwise we expect it to be an IP address and the next guard fires
+        if key[0].isdigit():
+            # TO BE REMOVED SOMEDAY
+            # Clock address - only possible if we're looking at a logfile made
+            # by NTP Classic or an NTPsec version configured with
+            # --enable-classic-mode.  Nasty that we have to emit a numeric
+            # driver type here.
+            if key.startswith("127.127."):
+                (_, _, t, u) = key.split(".")
+                return "REFCLOCK(type=%s,unit=%s)" % (t, u)
+            # Ordinary IP address - replace with primary hostname.
+            # Punt if the lookup fails.
+            try:
+                (hostname, _, _) = socket.gethostbyaddr(key)
+                return hostname
+            except socket.herror:
+                pass
+        return key      # Someday, be smarter than this.
+
 
 def iso_to_posix(s):
     "Accept timestamps in ISO 8661 format or numeric POSIX time. UTC only."


=====================================
tests/pylib/jigs.py
=====================================
--- a/tests/pylib/jigs.py
+++ b/tests/pylib/jigs.py
@@ -96,7 +96,6 @@ class HasherJig:
 class SocketModuleJig:
     error = socket.error
     gaierror = socket._socket.gaierror
-    herror = socket.herror
     SOCK_DGRAM = socket.SOCK_DGRAM
     IPPROTO_UDP = socket.IPPROTO_UDP
     AF_UNSPEC = socket.AF_UNSPEC
@@ -120,8 +119,6 @@ class SocketModuleJig:
         self.inet_ntop_calls = []
         self.getfqdn_calls = []
         self.getfqdn_returns = []
-        self.ghba_calls = []
-        self.ghba_returns = []
 
     def getaddrinfo(self, host, port, family=None, socktype=None,
                     proto=None, flags=None):
@@ -163,13 +160,6 @@ class SocketModuleJig:
         self.getfqdn_calls.append(name)
         return self.getfqdn_returns.pop(0)
 
-    def gethostbyaddr(self, addr):
-        self.ghba_calls.append(addr)
-        ret = self.ghba_returns.pop(0)
-        if ret is None:
-            raise self.herror
-        return ret
-
 
 class GetpassModuleJig:
     def __init__(self):


=====================================
tests/pylib/test_statfiles.py
=====================================
--- a/tests/pylib/test_statfiles.py
+++ b/tests/pylib/test_statfiles.py
@@ -33,17 +33,6 @@ class TestPylibStatfiles(unittest.TestCase):
 class TestNTPStats(unittest.TestCase):
     target = ntp.statfiles.NTPStats
 
-    open_calls = []
-    open_returns = []
-
-    def open_jig(self, filename, filemode):
-        self.open_calls.append((filename, filemode))
-        ret = self.open_returns.pop(0)
-        if ret is None:
-            raise IOError
-        else:
-            return ret
-
     def test_unixize(self):
         f = self.target.unixize
 
@@ -69,45 +58,18 @@ class TestNTPStats(unittest.TestCase):
         # Test
         self.assertEqual(f("12345.6789 blah blah"), 12345.6789)
 
-    def test_percentiles(self):
-        f = self.target.percentiles
-
-        # Test empty
-        self.assertEqual(f([], []), {})
-        # Test 1 item, empty percentile
-        self.assertEqual(f([], [42]), {})
-        # Test 1 item, non-empty percentile
-        self.assertEqual(f([10, 90], [42]), {"p10": 42, "p90": 42})
-        # Test several items, empty percentile
-        self.assertEqual(f([], [1, 23, 42, 99]), {})
-        # Test several items, non-empty percentile
-        self.assertEqual(f([10, 25, 50, 90, 100], [1, 23, 42, 99]),
-                         {"p10": 1, "p25": 23, "p90": 99,
-                          "p50": 42, "p100": 99})
-
-    def test_ip_label(self):
-        f = self.target.ip_label
+    def test___init__(self):
+        open_calls = []
+        open_returns = []
 
-        fakesockmod = jigs.SocketModuleJig()
-        try:
-            socktemp = ntp.statfiles.socket
-            ntp.statfiles.socket = fakesockmod
-            # Test no label
-            self.assertEqual(f("blah"), "blah")
-            # Test hostname, success
-            fakesockmod.ghba_returns = [("result.com", None, None)]
-            self.assertEqual(f("1.2.3.4"), "result.com")
-            # Test hostname, failure
-            fakesockmod.ghba_returns = [None]
-            self.assertEqual(f("1.2.3.4"), "1.2.3.4")
-            # Test old style NTP
-            fakesockmod.ghba_returns = [("foo.org", None, None)]
-            self.assertEqual(f("127.127.42.23"), "REFCLOCK(type=42,unit=23)")
-        finally:
-            ntp.statfiles.socket = socktemp
+        def open_jig(filename, filemode):
+            open_calls.append((filename, filemode))
+            ret = open_returns.pop(0)
+            if ret is None:
+                raise IOError
+            else:
+                return ret
 
-    def test___init__(self):
-        # Create jigs
         fakegzipmod = jigs.GzipModuleJig()
         fakesockmod = jigs.SocketModuleJig()
         logjig = jigs.FileJig()
@@ -129,7 +91,7 @@ class TestNTPStats(unittest.TestCase):
             globtemp = ntp.statfiles.glob
             ntp.statfiles.glob = fakeglobmod
             opentemp = open
-            ntp.statfiles.open = self.open_jig
+            ntp.statfiles.open = open_jig
             # Test simplest
             TDP = self.target.DefaultPeriod
             faketimemod.time_returns = [TDP * 2]
@@ -137,25 +99,21 @@ class TestNTPStats(unittest.TestCase):
             fakeosmod.path.getmtime_returns = [TDP+1, TDP+2, TDP+3, TDP+4,
                                                TDP+5, TDP+6, TDP+7, TDP+8,
                                                TDP+9, TDP+10, TDP+11, TDP-1]
-            self.open_returns = [jigs.FileJig(["40594 10\n", "40594 11"]),
-                                 jigs.FileJig(["40594 30\n", "40594 31"]),
-                                 jigs.FileJig(["40594 40\n", "40594 41"]),
-                                 jigs.FileJig(["40594 50\n", "40594 51"]),
-                                 jigs.FileJig(["40594 60\n", "40594 61"]),
-                                 jigs.FileJig(["40594 70\n", "40594 71"]),
-                                 jigs.FileJig(["40594 80\n", "40594 81"]),
-                                 jigs.FileJig(["604801.25 40594 90\n",
-                                               "#blah",
-                                               "604802.25 40594 91"]),
-                                 jigs.FileJig(["604803.25 40594 100\n",
-                                               "#blah",
-                                               "604804.25 40594 101"]),
-                                 jigs.FileJig(["604805.25 40594 110\n",
-                                               "#blah",
-                                               "604806.25 40594 111"]),
-                                 jigs.FileJig(["604807.25 40594 120\n",
-                                               "#blah",
-                                               "604808.25 40594 121"])]
+            open_returns = [jigs.FileJig(["40594 10\n", "40594 11"]),
+                            jigs.FileJig(["40594 30\n", "40594 31"]),
+                            jigs.FileJig(["40594 40\n", "40594 41"]),
+                            jigs.FileJig(["40594 50\n", "40594 51"]),
+                            jigs.FileJig(["40594 60\n", "40594 61"]),
+                            jigs.FileJig(["40594 70\n", "40594 71"]),
+                            jigs.FileJig(["40594 80\n", "40594 81"]),
+                            jigs.FileJig(["604801.25 40594 90\n", "#blah",
+                                          "604802.25 40594 91"]),
+                            jigs.FileJig(["604803.25 40594 100\n", "#blah",
+                                          "604804.25 40594 101"]),
+                            jigs.FileJig(["604805.25 40594 110\n", "#blah",
+                                          "604806.25 40594 111"]),
+                            jigs.FileJig(["604807.25 40594 120\n", "#blah",
+                                          "604808.25 40594 121"])]
             fakegzipmod.files_returned = [jigs.FileJig(["40594 20\n",
                                                         "40594 21"])]
             fakeglobmod.glob_returns = [("/foo/bar/clockstats.0",
@@ -208,7 +166,7 @@ class TestNTPStats(unittest.TestCase):
             faketimemod.time_returns = [TDP * 2]
             fakesockmod.fqdn_returns = ["jabber"]
             fakeosmod.path.isdir_returns = [True]
-            self.open_returns = [None]
+            open_returns = [None]
             fakeglobmod.glob_returns = [(["/foo/bar/clockstats.0"]),
                                         ([]), ([]), ([]), ([]), ([])]
             fakeosmod.path.getmtime_returns = [101, 102, 103, 104, 105, 106]
@@ -255,265 +213,6 @@ class TestNTPStats(unittest.TestCase):
             ntp.statfiles.open = opentemp
             sys.stderr = errtemp
 
-    def test_peersplit(self):
-        # Yes, this copies much of test___init__. I already know it works
-        #  and __init__ is very complicated
-        # Create jigs
-        fakegzipmod = jigs.GzipModuleJig()
-        fakesockmod = jigs.SocketModuleJig()
-        logjig = jigs.FileJig()
-        faketimemod = jigs.TimeModuleJig()
-        fakeosmod = jigs.OSModuleJig()
-        fakeglobmod = jigs.GlobModuleJig()
-        try:
-            # Splice in jigs
-            gziptemp = ntp.statfiles.gzip
-            ntp.statfiles.gzip = fakegzipmod
-            socktemp = ntp.statfiles.socket
-            ntp.statfiles.socket = fakesockmod
-            errtemp = sys.stderr
-            sys.stderr = logjig
-            timetemp = ntp.statfiles.time
-            ntp.statfiles.time = faketimemod
-            ostemp = ntp.statfiles.os
-            ntp.statfiles.os = fakeosmod
-            globtemp = ntp.statfiles.glob
-            ntp.statfiles.glob = fakeglobmod
-            opentemp = open
-            ntp.statfiles.open = self.open_jig
-            # Test simplest
-            TDP = self.target.DefaultPeriod
-            faketimemod.time_returns = [TDP * 2]
-            fakeosmod.path.isdir_returns = [True]
-            fakeosmod.path.getmtime_returns = [TDP+1, TDP+2, TDP+3, TDP+4,
-                                               TDP+5, TDP+6, TDP+7, TDP+8,
-                                               TDP+9, TDP+10, TDP+11, TDP-1]
-            self.open_returns = [jigs.FileJig(["40594 10\n", "40594 11"]),
-                                 jigs.FileJig(["40594 30 1.2.3.4\n",
-                                               "50594 -12\n",
-                                               "40594 31 1.2.3.4\n",
-                                               "40594 31.5 5.6.7.8\n"]),
-                                 jigs.FileJig(["40594 40\n", "40594 41"]),
-                                 jigs.FileJig(["40594 50\n", "40594 51"]),
-                                 jigs.FileJig(["40594 60\n", "40594 61"]),
-                                 jigs.FileJig(["40594 70\n", "40594 71"]),
-                                 jigs.FileJig(["40594 80\n", "40594 81"]),
-                                 jigs.FileJig(["604801.25 40594 90\n",
-                                               "#blah",
-                                               "604802.25 40594 91"]),
-                                 jigs.FileJig(["604803.25 40594 100\n",
-                                               "#blah",
-                                               "604804.25 40594 101"]),
-                                 jigs.FileJig(["604805.25 40594 110\n",
-                                               "#blah",
-                                               "604806.25 40594 111"]),
-                                 jigs.FileJig(["604807.25 40594 120\n",
-                                               "#blah",
-                                               "604808.25 40594 121"])]
-            fakegzipmod.files_returned = [jigs.FileJig(["40594 20\n",
-                                                        "40594 21"])]
-            fakeglobmod.glob_returns = [("/foo/bar/clockstats.0",
-                                         "/foo/bar/clockstats.1gz"),
-                                        ("/foo/bar/peerstats.0",
-                                         "/foo/bar/peerstats.1"),
-                                        ("/foo/bar/loopstats.0",
-                                         "/foo/bar/loopstats.1"),
-                                        ("/foo/bar/rawstats.0",
-                                         "/foo/bar/rawstats.1"),
-                                        ("/foo/bar/temps0",
-                                         "/foo/bar/temps1"),
-                                        ("/foo/bar/gpsd0",
-                                         "/foo/bar/gpsd1")]  # time kicked
-            cls = self.target("/foo/bar")
-            # Test
-            self.assertEqual(cls.peersplit(),
-                             {"1.2.3.4": [[604830000, '604830.0', "1.2.3.4"],
-                                          [604831000, '604831.0', "1.2.3.4"]],
-                              "5.6.7.8": [[604831500, '604831.5', "5.6.7.8"]]})
-            self.target.peermap["1.2.3.4"][0][0] = 42
-            # Test that it uses cache
-            self.assertEqual(cls.peersplit(),
-                             {"1.2.3.4": [[42, '604830.0', "1.2.3.4"],
-                                          [604831000, '604831.0', "1.2.3.4"]],
-                              "5.6.7.8": [[604831500, '604831.5', "5.6.7.8"]]})
-        finally:
-            ntp.statfiles.gzip = gziptemp
-            ntp.statfiles.socket = socktemp
-            ntp.statfiles.os = ostemp
-            ntp.statfiles.time = timetemp
-            ntp.statfiles.glob = fakeglobmod
-            ntp.statfiles.open = opentemp
-            sys.stderr = errtemp
-
-    def test_gpssplit(self):
-        # Yes, this copies much of test___init__. I already know it works
-        #  and __init__ is very complicated
-        # Create jigs
-        fakegzipmod = jigs.GzipModuleJig()
-        fakesockmod = jigs.SocketModuleJig()
-        logjig = jigs.FileJig()
-        faketimemod = jigs.TimeModuleJig()
-        fakeosmod = jigs.OSModuleJig()
-        fakeglobmod = jigs.GlobModuleJig()
-        try:
-            # Splice in jigs
-            gziptemp = ntp.statfiles.gzip
-            ntp.statfiles.gzip = fakegzipmod
-            socktemp = ntp.statfiles.socket
-            ntp.statfiles.socket = fakesockmod
-            errtemp = sys.stderr
-            sys.stderr = logjig
-            timetemp = ntp.statfiles.time
-            ntp.statfiles.time = faketimemod
-            ostemp = ntp.statfiles.os
-            ntp.statfiles.os = fakeosmod
-            globtemp = ntp.statfiles.glob
-            ntp.statfiles.glob = fakeglobmod
-            opentemp = open
-            ntp.statfiles.open = self.open_jig
-            # Test simplest
-            TDP = self.target.DefaultPeriod
-            faketimemod.time_returns = [TDP * 2]
-            fakeosmod.path.isdir_returns = [True]
-            fakeosmod.path.getmtime_returns = [TDP+1, TDP+2, TDP+3, TDP+4,
-                                               TDP+5, TDP+6, TDP+7, TDP+8,
-                                               TDP+9, TDP+10, TDP+11, TDP-1]
-            self.open_returns = [jigs.FileJig(["40594 10\n", "40594 11"]),
-                                 jigs.FileJig(["40594 30\n", "40594 31"]),
-                                 jigs.FileJig(["40594 40\n", "40594 41"]),
-                                 jigs.FileJig(["40594 50\n", "40594 51"]),
-                                 jigs.FileJig(["40594 60\n", "40594 61"]),
-                                 jigs.FileJig(["40594 70\n", "40594 71"]),
-                                 jigs.FileJig(["40594 80\n", "40594 81"]),
-                                 jigs.FileJig(["604801.25 40594 90\n",
-                                               "#blah",
-                                               "604802.25 40594 91"]),
-                                 jigs.FileJig(["604803.25 40594 100\n",
-                                               "#blah",
-                                               "604804.25 40594 101"]),
-                                 jigs.FileJig(["604805.25 40594 110\n",
-                                               "#blah",
-                                               "604806.25 40594 111"]),
-                                 jigs.FileJig(["604807.25 40594 120\n",
-                                               "#blah",
-                                               "604808.25 40594 121"])]
-            fakegzipmod.files_returned = [jigs.FileJig(["40594 20\n",
-                                                        "40594 21"])]
-            fakeglobmod.glob_returns = [("/foo/bar/clockstats.0",
-                                         "/foo/bar/clockstats.1gz"),
-                                        ("/foo/bar/peerstats.0",
-                                         "/foo/bar/peerstats.1"),
-                                        ("/foo/bar/loopstats.0",
-                                         "/foo/bar/loopstats.1"),
-                                        ("/foo/bar/rawstats.0",
-                                         "/foo/bar/rawstats.1"),
-                                        ("/foo/bar/temps0",
-                                         "/foo/bar/temps1"),
-                                        ("/foo/bar/gpsd0",
-                                         "/foo/bar/gpsd1")]  # time kicked
-            cls = self.target("/foo/bar")
-            self.assertEqual(cls.gpssplit(),
-                             {"40594": [[604805250, '604805.25', '40594',
-                                         '110'],
-                                        [604806250, '604806.25', '40594',
-                                         '111']]})
-        finally:
-            ntp.statfiles.gzip = gziptemp
-            ntp.statfiles.socket = socktemp
-            ntp.statfiles.os = ostemp
-            ntp.statfiles.time = timetemp
-            ntp.statfiles.glob = fakeglobmod
-            ntp.statfiles.open = opentemp
-            sys.stderr = errtemp
-
-    def test_tempssplit(self):
-        # Yes, this copies much of test___init__. I already know it works
-        #  and __init__ is very complicated
-        # Create jigs
-        fakegzipmod = jigs.GzipModuleJig()
-        fakesockmod = jigs.SocketModuleJig()
-        logjig = jigs.FileJig()
-        faketimemod = jigs.TimeModuleJig()
-        fakeosmod = jigs.OSModuleJig()
-        fakeglobmod = jigs.GlobModuleJig()
-        try:
-            # Splice in jigs
-            gziptemp = ntp.statfiles.gzip
-            ntp.statfiles.gzip = fakegzipmod
-            socktemp = ntp.statfiles.socket
-            ntp.statfiles.socket = fakesockmod
-            errtemp = sys.stderr
-            sys.stderr = logjig
-            timetemp = ntp.statfiles.time
-            ntp.statfiles.time = faketimemod
-            ostemp = ntp.statfiles.os
-            ntp.statfiles.os = fakeosmod
-            globtemp = ntp.statfiles.glob
-            ntp.statfiles.glob = fakeglobmod
-            opentemp = open
-            ntp.statfiles.open = self.open_jig
-            # Test simplest
-            TDP = self.target.DefaultPeriod
-            faketimemod.time_returns = [TDP * 2]
-            fakeosmod.path.isdir_returns = [True]
-            fakeosmod.path.getmtime_returns = [TDP+1, TDP+2, TDP+3, TDP+4,
-                                               TDP+5, TDP+6, TDP+7, TDP+8,
-                                               TDP+9, TDP+10, TDP+11, TDP-1]
-            self.open_returns = [jigs.FileJig(["40594 10\n", "40594 11"]),
-                                 jigs.FileJig(["40594 30\n", "40594 31"]),
-                                 jigs.FileJig(["40594 40\n", "40594 41"]),
-                                 jigs.FileJig(["40594 50\n", "40594 51"]),
-                                 jigs.FileJig(["40594 60\n", "40594 61"]),
-                                 jigs.FileJig(["40594 70\n", "40594 71"]),
-                                 jigs.FileJig(["40594 80\n", "40594 81"]),
-                                 jigs.FileJig(["604801.25 40594 90\n",
-                                               "#blah",
-                                               "604802.25 40594 91"]),
-                                 jigs.FileJig(["604803.25 40594 100\n",
-                                               "#blah",
-                                               "604804.25 40594 101",
-                                               "604804.25 40595 101"]),
-                                 jigs.FileJig(["604805.25 40594 110\n",
-                                               "#blah",
-                                               "604806.25 40594 111"]),
-                                 jigs.FileJig(["604807.25 40594 120\n",
-                                               "#blah",
-                                               "604808.25 40594 121"])]
-            fakegzipmod.files_returned = [jigs.FileJig(["40594 20\n",
-                                                        "40594 21"])]
-            fakeglobmod.glob_returns = [("/foo/bar/clockstats.0",
-                                         "/foo/bar/clockstats.1gz"),
-                                        ("/foo/bar/peerstats.0",
-                                         "/foo/bar/peerstats.1"),
-                                        ("/foo/bar/loopstats.0",
-                                         "/foo/bar/loopstats.1"),
-                                        ("/foo/bar/rawstats.0",
-                                         "/foo/bar/rawstats.1"),
-                                        ("/foo/bar/temps0",
-                                         "/foo/bar/temps1"),
-                                        ("/foo/bar/gpsd0",
-                                         "/foo/bar/gpsd1")]  # time kicked
-            cls = self.target("/foo/bar")
-            self.assertEqual(cls.tempssplit(),
-                             {"40594": [[604801250, '604801.25',
-                                         '40594', '90'],
-                                        [604802250, '604802.25',
-                                         '40594', '91'],
-                                        [604803250, '604803.25',
-                                         '40594', '100'],
-                                        [604804250, '604804.25',
-                                         '40594', '101']],
-                              "40595": [[604804250, '604804.25',
-                                         '40595', '101']]})
-        finally:
-            ntp.statfiles.gzip = gziptemp
-            ntp.statfiles.socket = socktemp
-            ntp.statfiles.os = ostemp
-            ntp.statfiles.time = timetemp
-            ntp.statfiles.glob = fakeglobmod
-            ntp.statfiles.open = opentemp
-            sys.stderr = errtemp
-
 
 if __name__ == '__main__':
     unittest.main()



View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/d6d5abfa0c87c3de2b9fc943e36b3b17c9a920ff

---
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/d6d5abfa0c87c3de2b9fc943e36b3b17c9a920ff
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/vc/attachments/20170912/43bdc8ca/attachment.html>


More information about the vc mailing list