Skip to content

test_upgrade

Tests for config upgrade helpers.

Attributes

upgrade = _load_upgrade_module() module-attribute

Classes

HealBloatedTelemetryFieldsTests

Bases: TestCase

Methods:

test_heals_realistically_corrupted_empty_values()
Source code in pyrevitlib/pyrevit/unittests/test_upgrade.py
def test_heals_realistically_corrupted_empty_values(self):
    values = {
        'telemetry_file_dir': '"\\"\\"\\""',
        'telemetry_server_url': '"\\"\\"\\"/"/"',
        'apptelemetry_server_url': '"\\"\\"\\"/"/"',
    }
    user_config, tempdir = self._make_config(values)

    healed = upgrade.heal_bloated_telemetry_fields(user_config)

    self.assertEqual(sorted(values), sorted(healed))
    self.assertEqual('', values['telemetry_file_dir'])
    self.assertEqual('', values['telemetry_server_url'])
    self.assertEqual('', values['apptelemetry_server_url'])
    self.assertEqual(
        1,
        len(glob.glob(
            os.path.join(tempdir, 'pyrevit_config.ini.bloated.*.bak'))),
    )
test_preserves_valid_below_threshold_values()
Source code in pyrevitlib/pyrevit/unittests/test_upgrade.py
def test_preserves_valid_below_threshold_values(self):
    values = {
        'telemetry_file_dir': json.dumps(
            'C:\\logs', separators=(',', ':'), ensure_ascii=False),
        'telemetry_server_url': json.dumps(
            'https://telem.example.com',
            separators=(',', ':'),
            ensure_ascii=False),
        'apptelemetry_server_url': json.dumps(
            'https://apptelm.example.com',
            separators=(',', ':'),
            ensure_ascii=False),
    }
    user_config, tempdir = self._make_config(values)

    healed = upgrade.heal_bloated_telemetry_fields(user_config)

    self.assertEqual([], healed)
    self.assertEqual(values['telemetry_file_dir'],
                     json.dumps('C:\\logs',
                                separators=(',', ':'),
                                ensure_ascii=False))
    self.assertEqual(
        values['telemetry_server_url'],
        json.dumps('https://telem.example.com',
                   separators=(',', ':'),
                   ensure_ascii=False))
    self.assertEqual(
        values['apptelemetry_server_url'],
        json.dumps('https://apptelm.example.com',
                   separators=(',', ':'),
                   ensure_ascii=False))
    self.assertEqual(
        [],
        glob.glob(
            os.path.join(tempdir, 'pyrevit_config.ini.bloated.*.bak')),
    )
test_preserves_empty_values()
Source code in pyrevitlib/pyrevit/unittests/test_upgrade.py
def test_preserves_empty_values(self):
    values = {
        'telemetry_file_dir': '',
        'telemetry_server_url': '""',
        'apptelemetry_server_url': '',
    }
    user_config, _ = self._make_config(values)

    healed = upgrade.heal_bloated_telemetry_fields(user_config)

    self.assertEqual([], healed)
test_heals_oversized_values_by_length()
Source code in pyrevitlib/pyrevit/unittests/test_upgrade.py
def test_heals_oversized_values_by_length(self):
    oversized_value = 'x' * (upgrade.TELEMETRY_FIELD_MAX_LEN + 1)
    values = {'telemetry_server_url': oversized_value}
    user_config, _ = self._make_config(values)

    healed = upgrade.heal_bloated_telemetry_fields(user_config)

    self.assertEqual(['telemetry_server_url'], healed)
    self.assertEqual('', values['telemetry_server_url'])