def _load_xvm_xc(filename, autoreload): # debug('_load_xvm_xc: "{}", {}'.format(filename, autoreload)) try: config = deepcopy(default_config.DEFAULT_CONFIG) if not os.path.isfile(filename): log('[WARNING] xvm.xc was not found, building new') with open(filename, 'w') as f: f.write(DEFAULT_XVM_XC) if os.path.isfile(filename): result = JSONxLoader.load(filename, _load_log) if result is not None: config = _merge_configs(config, result) config['__stateInfo'] = {} else: log('[WARNING] xvm.xc was not found, using the built-in config') config['__stateInfo'] = {'warning':''} except Exception as ex: config['autoReloadConfig'] = autoreload config['__stateInfo'] = {'error':str(ex), 'stacktrace':traceback.format_exc()} err(traceback.format_exc()) #log('config={}'.format(config)) _tuneup_config(config) config = unicode_to_ascii(config) return config
def _load_xvm_xc(filename, autoreload): # debug('_load_xvm_xc: "{}", {}'.format(filename, autoreload)) try: config = deepcopy(default_config.DEFAULT_CONFIG) if not os.path.isfile(filename): log('[WARNING] xvm.xc was not found, building new') with open(filename, 'w') as f: f.write(DEFAULT_XVM_XC) if os.path.isfile(filename): result = JSONxLoader.load(filename, _load_log) if result is not None: config = _merge_configs(config, result) config['__stateInfo'] = {} else: log('[WARNING] xvm.xc was not found, using the built-in config') config['__stateInfo'] = {'warning': ''} except Exception as ex: config['autoReloadConfig'] = autoreload config['__stateInfo'] = { 'error': str(ex), 'stacktrace': traceback.format_exc() } err(traceback.format_exc()) #log('config={}'.format(config)) _tuneup_config(config) config = unicode_to_ascii(config) return config
def _load_locale_file(): try: data = JSONxLoader.load('{}/{}.xc'.format(XVM.LOCALE_DIR, get('language')), _load_log) except Exception: data = default_config.LANG_RU if get('region').lower() == 'ru' else default_config.LANG_EN err(traceback.format_exc()) data = unicode_to_ascii(data) return data
def test_object(self): result = JSONxLoader.load('testdata/object.xc') self.assertEqual(result, { "string_key": "value", "number_key": 123, "array_key": [], "object_key": {} })
def test_ref(self): result = JSONxLoader.load('testdata/reference.xc') self.assertEqual(result, { "def": { "damageText": "100500dmg!", "damageMessage": "New message" }, "damageTextPlayer": { "damageText": "100500dmg!", "damageMessage": "Original message" }, "reference_chain": "Taaa daaaa!", "override_example": "100500dmg!" })
def test_list(self): result = JSONxLoader.load('testdata/array.xc') self.assertEqual(result, [0, [1, 2, 3], {}, ''])
def test_default(self): result = JSONxLoader.load('testdata/xvm_default.xc') self.assertEqual(result['definition']['description'], 'Default settings for XVM') self.assertEqual(result['minimap']['circles']['view'][0]['enabled'], True) self.assertEqual(result['minimap']['lines']['vehicle'][0]['enabled'], True)
def test_unicode(self): result = JSONxLoader.load('testdata/unicode.xc') self.assertEqual(result['cyrillic_string'], u'Кирилица') self.assertEqual(result['lander'], u'Länder')