Skip to content

Commit b857eac

Browse files
committed
[tests] Added test for duplicate file bug on file creation #817
Fixes #817
1 parent 3cb308b commit b857eac

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

openwisp_controller/config/tests/test_config.py

+30-12
Original file line numberDiff line numberDiff line change
@@ -652,18 +652,36 @@ def test_remove_duplicate_files(self):
652652
]
653653
},
654654
)
655-
config = self._create_config(organization=self._get_org())
656-
config.templates.add(template1)
657-
config.templates.add(template2)
658-
config.refresh_from_db()
659-
try:
660-
result = config.get_backend_instance(
661-
template_instances=[template1, template2]
662-
).render()
663-
except ValidationError:
664-
self.fail('ValidationError raised!')
665-
else:
666-
self.assertIn('# path: /etc/vpnserver1', result)
655+
org = self._get_org()
656+
with self.subTest('Test template applied on creating config'):
657+
try:
658+
config = self._create_config(
659+
organization=org,
660+
templates=[template1, template2],
661+
)
662+
result = config.get_backend_instance(
663+
template_instances=[template1, template2]
664+
).render()
665+
except ValidationError:
666+
self.fail('ValidationError raised!')
667+
else:
668+
self.assertIn('# path: /etc/vpnserver1', result)
669+
670+
config.device.delete()
671+
config.delete()
672+
with self.subTest('Test template applied after creating config object'):
673+
config = self._create_config(organization=org)
674+
config.templates.add(template1)
675+
config.templates.add(template2)
676+
config.refresh_from_db()
677+
try:
678+
result = config.get_backend_instance(
679+
template_instances=[template1, template2]
680+
).render()
681+
except ValidationError:
682+
self.fail('ValidationError raised!')
683+
else:
684+
self.assertIn('# path: /etc/vpnserver1', result)
667685

668686
def test_duplicated_files_in_config(self):
669687
try:

openwisp_controller/config/tests/utils.py

+3
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,10 @@ def _create_config(self, **kwargs):
5959
options['device'] = self._create_device(
6060
organization=self._get_org(), name='test-device'
6161
)
62+
templates = options.pop('templates', [])
6263
c = Config(**options)
64+
if templates:
65+
c.templates.set(templates)
6366
c.full_clean()
6467
c.save()
6568
return c

0 commit comments

Comments
 (0)