Reland "cros_generate_os_release: do not require /etc/os-release.d"

This reverts commit 3e09b43bd1740683eadb81ffbcb2ec62af3b6992.

Reason for revert: crbug.com/1208870#c20

Original change's description:
> Revert "cros_generate_os_release: do not require /etc/os-release.d"
>
> This reverts commit 750eabec1c1b61628f65836c6f8a070b262d99f5.
>
> Reason for revert: triggers crash.* failures on amd64-generic-snapshot (https://crbug.com/1208870).
>
> Original change's description:
> > cros_generate_os_release: do not require /etc/os-release.d
> >
> > We usually pass defaults when generating the file, so make sure the
> > file is always created even when the /etc/os-release.d dir doesn't
> > exist.
> >
> > BUG=None
> > TEST=unittests pass
> >
> > Change-Id: I373d018c918f3a385671f896520a766498cffc9d
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2893002
> > Reviewed-by: Daniel Campello <campello@chromium.org>
> > Tested-by: Mike Frysinger <vapier@chromium.org>
> > Commit-Queue: Mike Frysinger <vapier@chromium.org>
>
> Bug: None
> Change-Id: I3f466d8b1f1a931e101723aa67b953dfaa8130a6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2892356
> Reviewed-by: Andres Calderon Jaramillo <andrescj@google.com>
> Commit-Queue: Andres Calderon Jaramillo <andrescj@google.com>
> Tested-by: Andres Calderon Jaramillo <andrescj@google.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>

Bug: None
Change-Id: I87cf00b02ac6c2efd535d479f37fffcaa9e980b7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2903282
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Daniel Campello <campello@chromium.org>
diff --git a/scripts/cros_generate_os_release_unittest.py b/scripts/cros_generate_os_release_unittest.py
index 046b5bf..7068c0d 100644
--- a/scripts/cros_generate_os_release_unittest.py
+++ b/scripts/cros_generate_os_release_unittest.py
@@ -66,3 +66,10 @@
                       'TEST2=bonjour',
                       'TEST3=hola'],
                      output)
+
+  def testDefaultsOnly(self):
+    """Make sure we always emit defaults even without any os-release.d frags."""
+    osutils.RmDir(self.osreleased)
+    cros_generate_os_release.GenerateOsRelease(self.tempdir, {'FOO': 'bar'})
+    self.assertExists(self.osrelease)
+    self.assertEqual('FOO=bar\n', osutils.ReadFile(self.osrelease))