sysmon: handle unittests under Python 3.8+

We patched the runtime code to handle platform.dist not existing,
but didn't update the unittests.

BUG=chromium:997354
TEST=`./run_tests` passes

Change-Id: I034c3adda79172fd8cb81cde881e6c40cb74e5ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2847686
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
diff --git a/scripts/sysmon/osinfo_metrics_unittest.py b/scripts/sysmon/osinfo_metrics_unittest.py
index bdd5e5d..efcfff3 100644
--- a/scripts/sysmon/osinfo_metrics_unittest.py
+++ b/scripts/sysmon/osinfo_metrics_unittest.py
@@ -31,17 +31,31 @@
     self.addCleanup(patcher.stop)
 
   def test_collect(self):
+    distro = ('Ubuntu', '14.04', 'trusty')
+    # This is removed in Python 3.8+.
+    try:
+      dist = mock.patch('platform.dist', autospec=True, return_value=distro)
+      dist.start()
+    except AttributeError:
+      distro = ('', '', '')
+      dist = None
+
     with mock.patch('platform.system', autospec=True) as system, \
-         mock.patch('platform.dist', autospec=True) as dist, \
          mock.patch('sys.maxsize', 2**64):
       system.return_value = 'Linux'
-      dist.return_value = ('Ubuntu', '14.04', 'trusty')
+      if dist is not None:
+        dist.return_value = distro
       osinfo_metrics.collect_os_info()
 
+    if dist is not None:
+      dist.stop()
+
     setter = self.store.set
+    print(setter.mock_calls)
     calls = [
-        mock.call('proc/os/name', (), None, 'ubuntu', enforce_ge=mock.ANY),
-        mock.call('proc/os/version', (), None, '14.04', enforce_ge=mock.ANY),
+        mock.call('proc/os/name', (), None, distro[0].lower(),
+                  enforce_ge=mock.ANY),
+        mock.call('proc/os/version', (), None, distro[1], enforce_ge=mock.ANY),
         mock.call('proc/os/arch', (), None, 'x86_64', enforce_ge=mock.ANY),
         mock.call('proc/python/arch', (), None, '64', enforce_ge=mock.ANY),
     ]