Skip to content

Commit 11359eb

Browse files
committed
[fix] Add tests for user credentials data migration
1 parent cdd7769 commit 11359eb

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import importlib
2+
import json
3+
4+
from unittest.mock import MagicMock
5+
6+
from django.db import connection
7+
from django.test import TestCase
8+
9+
from openwisp_radius.models import RadiusBatch
10+
11+
migration_module = importlib.import_module(
12+
"openwisp_radius.migrations.0044_convert_user_credentials_data"
13+
)
14+
convert_user_credentials_data = migration_module.convert_user_credentials_data
15+
16+
17+
class Test0044Migration(TestCase):
18+
def test_convert_user_credentials_data(self):
19+
batch = RadiusBatch.objects.create(
20+
name="test_batch_migration", strategy="prefix", prefix="test"
21+
)
22+
RadiusBatch.objects.filter(pk=batch.pk).update(
23+
user_credentials=json.dumps({"user1": "pass1"})
24+
)
25+
26+
apps = MagicMock()
27+
apps.get_model.return_value = RadiusBatch
28+
29+
schema_editor = MagicMock()
30+
schema_editor.connection = connection
31+
32+
convert_user_credentials_data(apps, schema_editor)
33+
34+
batch.refresh_from_db()
35+
self.assertEqual(batch.user_credentials, {"user1": "pass1"})
36+
37+
def test_convert_user_credentials_data_invalid_json(self):
38+
batch = RadiusBatch.objects.create(
39+
name="test_batch_invalid", strategy="prefix", prefix="test2"
40+
)
41+
RadiusBatch.objects.filter(pk=batch.pk).update(
42+
user_credentials="invalid_json_string"
43+
)
44+
45+
apps = MagicMock()
46+
apps.get_model.return_value = RadiusBatch
47+
48+
schema_editor = MagicMock()
49+
schema_editor.connection = connection
50+
51+
convert_user_credentials_data(apps, schema_editor)
52+
53+
batch.refresh_from_db()
54+
self.assertEqual(batch.user_credentials, "invalid_json_string")

0 commit comments

Comments
 (0)