| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- from django.test import TestCase
- from core.models import DataSource
- from core.choices import ObjectChangeActionChoices
- from netbox.constants import CENSOR_TOKEN, CENSOR_TOKEN_CHANGED
- class DataSourceChangeLoggingTestCase(TestCase):
- def test_password_added_on_create(self):
- datasource = DataSource.objects.create(
- name='Data Source 1',
- type='git',
- source_url='http://localhost/',
- parameters={
- 'username': 'jeff',
- 'password': 'foobar123',
- }
- )
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_CREATE)
- self.assertIsNone(objectchange.prechange_data)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], CENSOR_TOKEN_CHANGED)
- def test_password_added_on_update(self):
- datasource = DataSource.objects.create(
- name='Data Source 1',
- type='git',
- source_url='http://localhost/'
- )
- datasource.snapshot()
- # Add a blank password
- datasource.parameters = {
- 'username': 'jeff',
- 'password': '',
- }
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertIsNone(objectchange.prechange_data['parameters'])
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], '')
- # Add a password
- datasource.parameters = {
- 'username': 'jeff',
- 'password': 'foobar123',
- }
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], CENSOR_TOKEN_CHANGED)
- def test_password_changed(self):
- datasource = DataSource.objects.create(
- name='Data Source 1',
- type='git',
- source_url='http://localhost/',
- parameters={
- 'username': 'jeff',
- 'password': 'password1',
- }
- )
- datasource.snapshot()
- # Change the password
- datasource.parameters['password'] = 'password2'
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertEqual(objectchange.prechange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.prechange_data['parameters']['password'], CENSOR_TOKEN)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], CENSOR_TOKEN_CHANGED)
- def test_password_removed_on_update(self):
- datasource = DataSource.objects.create(
- name='Data Source 1',
- type='git',
- source_url='http://localhost/',
- parameters={
- 'username': 'jeff',
- 'password': 'foobar123',
- }
- )
- datasource.snapshot()
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertEqual(objectchange.prechange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.prechange_data['parameters']['password'], CENSOR_TOKEN)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], CENSOR_TOKEN)
- # Remove the password
- datasource.parameters['password'] = ''
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertEqual(objectchange.prechange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.prechange_data['parameters']['password'], CENSOR_TOKEN)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'jeff')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], '')
- def test_password_not_modified(self):
- datasource = DataSource.objects.create(
- name='Data Source 1',
- type='git',
- source_url='http://localhost/',
- parameters={
- 'username': 'username1',
- 'password': 'foobar123',
- }
- )
- datasource.snapshot()
- # Remove the password
- datasource.parameters['username'] = 'username2'
- objectchange = datasource.to_objectchange(ObjectChangeActionChoices.ACTION_UPDATE)
- self.assertEqual(objectchange.prechange_data['parameters']['username'], 'username1')
- self.assertEqual(objectchange.prechange_data['parameters']['password'], CENSOR_TOKEN)
- self.assertEqual(objectchange.postchange_data['parameters']['username'], 'username2')
- self.assertEqual(objectchange.postchange_data['parameters']['password'], CENSOR_TOKEN)
|