Home | History | Annotate | Download | only in platform
      1 # Copyright 2013 The Chromium 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 import unittest
      5 
      6 from telemetry.internal.platform import gpu_device
      7 from telemetry.internal.platform import gpu_info
      8 from telemetry.internal.platform import system_info
      9 
     10 
     11 class TestSystemInfo(unittest.TestCase):
     12 
     13   def testConstruction(self):
     14     data = {
     15         'model_name': 'MacBookPro 10.1',
     16         'gpu': {
     17             'devices': [
     18                 {'vendor_id': 1000, 'device_id': 2000,
     19                  'vendor_string': 'a', 'device_string': 'b'},
     20             ]
     21         }
     22     }
     23     info = system_info.SystemInfo.FromDict(data)
     24     self.assertTrue(isinstance(info, system_info.SystemInfo))
     25     self.assertTrue(isinstance(info.gpu, gpu_info.GPUInfo))
     26     self.assertEquals(info.model_name, 'MacBookPro 10.1')
     27     self.assertTrue(len(info.gpu.devices) == 1)
     28     self.assertTrue(isinstance(info.gpu.devices[0], gpu_device.GPUDevice))
     29     self.assertEquals(info.gpu.devices[0].vendor_id, 1000)
     30     self.assertEquals(info.gpu.devices[0].device_id, 2000)
     31     self.assertEquals(info.gpu.devices[0].vendor_string, 'a')
     32     self.assertEquals(info.gpu.devices[0].device_string, 'b')
     33 
     34   def testEmptyModelName(self):
     35     data = {
     36         'model_name': '',
     37         'gpu': {
     38             'devices': [
     39                 {'vendor_id': 1000, 'device_id': 2000,
     40                  'vendor_string': 'a', 'device_string': 'b'},
     41             ]
     42         }
     43     }
     44     try:
     45       info = system_info.SystemInfo.FromDict(data)
     46       self.assertEquals(info.model_name, '')
     47     except AssertionError:
     48       raise
     49     except Exception:
     50       self.fail('Should not raise exception for empty model_name string')
     51 
     52   def testMissingAttrsFromDict(self):
     53     data = {
     54         'model_name': 'MacBookPro 10.1',
     55         'devices': [{'vendor_id': 1000, 'device_id': 2000,
     56                      'vendor_string': 'a', 'device_string': 'b'}]
     57     }
     58 
     59     for k in data:
     60       data_copy = data.copy()
     61       del data_copy[k]
     62       try:
     63         system_info.SystemInfo.FromDict(data_copy)
     64         self.fail('Should raise exception if attribute "%s" is missing' % k)
     65       except AssertionError:
     66         raise
     67       except KeyError:
     68         pass
     69