blob: 1dffa0f2ea3060e0cc509a7f9264e51f6126b05b [file] [log] [blame]
Bertrand SIMONNET83ee6ce2014-10-06 14:20:10 -07001# Copyright 2016 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Test cros_generate_os_release."""
6
7from __future__ import print_function
8
9import os
10
11from chromite.lib import cros_build_lib
12from chromite.lib import cros_test_lib
13from chromite.lib import osutils
14import cros_generate_os_release
15
16
17class CrosGenerateOsReleaseTest(cros_test_lib.TempDirTestCase):
18 """Tests GenerateOsRelease."""
19
20 def setUp(self):
21 # Use a fresh tempdir as the root for each test case.
22 self.osrelease = os.path.join(self.tempdir, "etc", "os-release")
23 self.osreleased = os.path.join(self.tempdir, "etc", "os-release.d")
24 osutils.SafeMakedirs(self.osreleased)
25
26 def testOnlyOsRelease(self):
27 """Tests the script without /etc/os-release."""
28 osutils.WriteFile(os.path.join(self.osreleased, "TEST"), "hello")
29 cros_generate_os_release.GenerateOsRelease(self.tempdir)
30 self.assertEquals("TEST=hello\n", osutils.ReadFile(self.osrelease))
31
32 def testOnlyOsReleaseD(self):
33 """Tests the script without /etc/os-release.d."""
34 osutils.RmDir(self.osreleased)
35 osutils.WriteFile(self.osrelease, "TEST=bonjour\n")
36
37 cros_generate_os_release.GenerateOsRelease(self.tempdir)
38 self.assertEquals("TEST=bonjour\n", osutils.ReadFile(self.osrelease))
39
40 def testFailOnDuplicate(self):
41 """Tests with a field set both in os-release and os-release.d/."""
42 osutils.WriteFile(os.path.join(self.osreleased, "TEST"), "hello")
43 osutils.WriteFile(self.osrelease, "TEST=bonjour")
44
45 self.assertRaises(cros_build_lib.DieSystemExit,
46 cros_generate_os_release.GenerateOsRelease, self.tempdir)
47
48 def testNormal(self):
49 """Normal scenario: both os-release and os-release.d are present."""
50 osutils.WriteFile(os.path.join(self.osreleased, "TEST1"), "hello")
51 osutils.WriteFile(self.osrelease, "TEST2=bonjour")
52
53 cros_generate_os_release.GenerateOsRelease(self.tempdir)
54 self.assertEquals("TEST1=hello\nTEST2=bonjour\n",
55 osutils.ReadFile(self.osrelease))