blob: 4704b483b05743fdd52f6a97d435bec87b33863d [file] [log] [blame]
import sh
import unittest
from unittest.mock import MagicMock
from steps import gsutil_setup
class TestGsutilSetup(unittest.TestCase):
def setUp(self):
self.init_step_mock()
self.step.use_cache = True
self.step.create_sstate_cache_dir = MagicMock()
self.step.create_sources_dir = MagicMock()
self.step.fetch_sstate_cache = MagicMock()
self.step.fetch_sources = MagicMock()
self.step.chown_sstate_cache = MagicMock()
self.step.run_script()
def init_step_mock(self):
self.step = gsutil_setup.GsutilSetup()
self.step.firmware_machine = "machine0"
self.step.gcs_bucket = "a-bucket"
def test_create_sstate_cache_dir(self):
"""Tests that sstate_cache_dir method is called"""
self.step.create_sstate_cache_dir.assert_called_with()
def test_create_sources_dir(self):
"""Tests that create_sources method is called"""
self.step.create_sources_dir.assert_called_with()
def test_fetch_sstate_cache(self):
"""Tests that fetch_sstate_cache method is called"""
self.step.fetch_sstate_cache.assert_called_with()
def test_fetch_sources(self):
"""Tests that fetch_sources method is called"""
self.step.fetch_sources.assert_called_with()
def test_disable_sstate_cache(self):
"""Tests the program state when use_cache=False"""
self.init_step_mock()
self.step.use_cache = False
self.step.create_sstate_cache_dir = MagicMock()
self.step.create_sources_dir = MagicMock()
self.step.fetch_sstate_cache = MagicMock()
self.step.fetch_sources = MagicMock()
self.step.chown_sstate_cache = MagicMock()
self.step.run_script()
self.step.create_sstate_cache_dir.assert_not_called()
self.step.create_sources_dir.assert_called_with()
self.step.fetch_sstate_cache.assert_not_called()
self.step.fetch_sources.assert_called_with()
self.step.chown_sstate_cache.assert_not_called()
def test_mkdir(self):
"""Tests the call order of the mkdir calls"""
self.init_step_mock()
self.step.fetch_sstate_cache = MagicMock()
self.step.fetch_sources = MagicMock()
self.step.chown_sstate_cache = MagicMock()
self.step.use_cache = True
sh.mkdir = MagicMock()
self.step.run_script()
actual_calls = sh.mkdir.call_args_list
expected_calls = [(("-p", "build/machine0/sstate-cache"),),
(("-p", "build/sources"),),]
self.assertEqual(actual_calls, expected_calls)
def test_gsutil(self):
"""Tests the order in which gsutil is called, and their arguments"""
self.init_step_mock()
self.step.use_cache = True
self.step.create_sstate_cache_dir = MagicMock()
self.step.create_sources_dir = MagicMock()
self.step.gsutil = MagicMock()
self.step.chown_sstate_cache = MagicMock()
self.step.run_script()
actual_calls = self.step.gsutil.call_args_list
expected_calls = [(("rsync", "gs://a-bucket/cache-unzip/machine0",
"build/machine0/sstate-cache"),),
(("rsync", "gs://a-bucket/sources", "build/sources"),)]
self.assertEqual(actual_calls, expected_calls)
def test_chown(self):
"""Tests that sh.chown is called with the right arguments when use_cache=True"""
self.init_step_mock()
self.step.use_cache = True
self.step.create_sstate_cache_dir = MagicMock()
self.step.create_sources_dir = MagicMock()
self.step.fetch_sstate_cache = MagicMock()
self.step.fetch_sources = MagicMock()
sh.chown = MagicMock()
self.step.run_script()
sh.chown("-R", "build", "build/machine0/sstate-cache")
self.step.chown_sstate_cache = MagicMock()
self.step.run_script()
self.step.chown_sstate_cache.assert_called_with()