Random ID test mixin: Restore save method

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
Roberto Rosario
2019-01-30 03:29:12 -04:00
parent 08fac9fd9d
commit b4a81ee0bc

View File

@@ -170,22 +170,26 @@ class RandomPrimaryKeyModelMonkeyPatchMixin(object):
return primary_key
def setUp(self):
original_save = models.Model.save
self.method_save_original = models.Model.save
def new_save(self, *args, **kwargs):
if self.pk:
return original_save(self, *args, **kwargs)
def method_save_new(instance, *args, **kwargs):
if instance.pk:
return self.method_save_original(instance, *args, **kwargs)
else:
self.pk = RandomPrimaryKeyModelMonkeyPatchMixin.get_unique_primary_key(
model=self._meta.model
instance.pk = RandomPrimaryKeyModelMonkeyPatchMixin.get_unique_primary_key(
model=instance._meta.model
)
self.id = self.pk
instance.id = instance.pk
return self.save_base(force_insert=True)
return instance.save_base(force_insert=True)
setattr(models.Model, 'save', new_save)
setattr(models.Model, 'save', method_save_new)
super(RandomPrimaryKeyModelMonkeyPatchMixin, self).setUp()
def tearDown(self):
models.Model.save = self.method_save_original
super(RandomPrimaryKeyModelMonkeyPatchMixin, self).tearDown()
class TempfileCheckTestCaseMixin(object):
# Ignore the jvmstat instrumentation and GitLab's CI .config files