def setUp(self):
   self._config = tracing_config.TracingConfig()
   self._config.enable_cpu_trace = True
   if sys.platform.startswith('win'):
     self._desktop_backend = win_platform_backend.WinPlatformBackend()
   elif sys.platform.startswith('darwin'):
     self._desktop_backend = mac_platform_backend.MacPlatformBackend()
   else:
     self._desktop_backend = linux_platform_backend.LinuxPlatformBackend()
   self._agent = cpu_tracing_agent.CpuTracingAgent(self._desktop_backend)
  def testGetOSVersionNameSaucy(self):
    path = os.path.join(util.GetUnittestDataDir(), 'ubuntu-saucy-lsb-release')
    with open(path) as f:
      unbuntu_saucy_lsb_release_content = f.read()

    with mock.patch.object(
        linux_platform_backend.LinuxPlatformBackend, 'GetFileContents',
        return_value=unbuntu_saucy_lsb_release_content) as mock_method:
      backend = linux_platform_backend.LinuxPlatformBackend()
      self.assertEqual(backend.GetOSVersionName(), 'saucy')
      mock_method.assert_called_once_with('/etc/lsb-release')
  def testGetOSVersionNameArch(self):
    path = os.path.join(util.GetUnittestDataDir(), 'arch-lsb-release')
    with open(path) as f:
      arch_lsb_release_content = f.read()

    with mock.patch.object(
        linux_platform_backend.LinuxPlatformBackend, 'GetFileContents',
        return_value=arch_lsb_release_content) as mock_method:
      backend = linux_platform_backend.LinuxPlatformBackend()
      # a distribution may not have a codename or a release number. We just
      # check that GetOSVersionName doesn't raise an exception
      backend.GetOSVersionName()
      mock_method.assert_called_once_with('/etc/lsb-release')
    def testGetOSVersionNameFedora(self):
        path = os.path.join(util.GetUnittestDataDir(), 'fedora-os-release')
        with open(path) as f:
            fedora_os_release_content = f.read()

        with mock.patch.object(os.path,
                               'exists',
                               side_effect=_PathMatches('/etc/os-release')):
            with mock.patch.object(
                    linux_platform_backend.LinuxPlatformBackend,
                    'GetFileContents',
                    return_value=fedora_os_release_content) as mock_method:
                backend = linux_platform_backend.LinuxPlatformBackend()
                self.assertEqual(backend.GetOSVersionName(), 'fedora')
                mock_method.assert_called_once_with('/etc/os-release')