Skip to content

Commit

Permalink
Test exporting json sub cons list
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnMwashuma committed Nov 4, 2024
1 parent 16e8db8 commit 739e347
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions tally_ho/apps/tally/tests/views/test_get_json_sub_cons.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
from datetime import datetime
from django.urls import reverse
from tally_ho.libs.tests.test_base import TestBase
from tally_ho.libs.tests.test_base import (
create_ballot, create_electrol_race, create_sub_constituency
)
from django.http import JsonResponse
import json
from tally_ho.libs.permissions import groups
from tally_ho.libs.tests.test_base import create_tally
from django.utils import timezone
from tally_ho.libs.tests.fixtures.electrol_race_data import electrol_races

class GetJSONSubConsTest(TestBase):
def setUp(self):
self._create_permission_groups()
self._create_and_login_user()
self._add_user_to_group(self.user, groups.TALLY_MANAGER)
self.tally = create_tally()
self.tally.users.add(self.user)
self.url = reverse('download-sub-cons-list')
electrol_race = create_electrol_race(
self.tally,
**electrol_races[0]
)
ballot = create_ballot(self.tally, electrol_race=electrol_race)
create_sub_constituency(
code=1,
field_office='1',
ballots=[ballot],
name="Sub Con A",
tally=self.tally,
)

def test_get_sub_cons_success(self):
mock_queryset = [
{
'code': 1,
'name': 'Sub Con A',
'election_level': 'Presidential',
'sub_race': 'ballot_number_presidential',
'ballot_number': 1
}
]
request_data = json.dumps({'tally_id': self.tally.id})
response = self.client.get(self.url, {'data': request_data})
self.assertIsInstance(response, JsonResponse)

response_data = json.loads(response.content)
expected_data = {
'data': mock_queryset,
'created_at': response_data['created_at'],
}
self.assertEqual(response_data['data'], expected_data['data'])

created_at = datetime.strptime(
response_data['created_at'], '%Y-%m-%dT%H:%M:%S.%fZ')
created_at = timezone.make_aware(created_at)
self.assertTrue(created_at <= timezone.now())

0 comments on commit 739e347

Please sign in to comment.