blob: d4c341ee835e598b857cc14d4140c38e31cab865 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from telemetry.internal.platform import gpu_device
from telemetry.internal.platform import gpu_info
from telemetry.internal.platform import system_info
class TestSystemInfo(unittest.TestCase):
def testConstruction(self):
data = {
'model_name': 'MacBookPro 10.1',
'gpu': {
'devices': [
{'vendor_id': 1000, 'device_id': 2000,
'vendor_string': 'a', 'device_string': 'b'},
]
}
}
info = system_info.SystemInfo.FromDict(data)
self.assertTrue(isinstance(info, system_info.SystemInfo))
self.assertTrue(isinstance(info.gpu, gpu_info.GPUInfo))
self.assertEquals(info.model_name, 'MacBookPro 10.1')
self.assertTrue(len(info.gpu.devices) == 1)
self.assertTrue(isinstance(info.gpu.devices[0], gpu_device.GPUDevice))
self.assertEquals(info.gpu.devices[0].vendor_id, 1000)
self.assertEquals(info.gpu.devices[0].device_id, 2000)
self.assertEquals(info.gpu.devices[0].vendor_string, 'a')
self.assertEquals(info.gpu.devices[0].device_string, 'b')
def testEmptyModelName(self):
data = {
'model_name': '',
'gpu': {
'devices': [
{'vendor_id': 1000, 'device_id': 2000,
'vendor_string': 'a', 'device_string': 'b'},
]
}
}
try:
info = system_info.SystemInfo.FromDict(data)
self.assertEquals(info.model_name, '')
except AssertionError:
raise
except Exception:
self.fail('Should not raise exception for empty model_name string')
def testMissingAttrsFromDict(self):
data = {
'model_name': 'MacBookPro 10.1',
'devices': [{'vendor_id': 1000, 'device_id': 2000,
'vendor_string': 'a', 'device_string': 'b'}]
}
for k in data:
data_copy = data.copy()
del data_copy[k]
try:
system_info.SystemInfo.FromDict(data_copy)
self.fail('Should raise exception if attribute "%s" is missing' % k)
except AssertionError:
raise
except KeyError:
pass