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