Skip to content

Commit

Permalink
Siege-Software#26 Added tests for django_typesense signals.
Browse files Browse the repository at this point in the history
  • Loading branch information
KengoWada committed Nov 2, 2023
1 parent 328f06f commit e749670
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions tests/test_typesense_signals.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
from datetime import date, timedelta

from django.test import TestCase

from tests.models import Artist, Genre, Song
from tests.utils import get_document


class TestTypeSenseSignals(TestCase):
def setUp(self):
self.genre = Genre.objects.create(name="genre1")
self.artist = Artist.objects.create(name="artist1")
self.song = Song.objects.create(
title="New Song",
genre=self.genre,
release_date=date.today(),
description="New song description",
duration=timedelta(minutes=3, seconds=35),
)

def test_post_save_typesense_models(self):
schema_name = self.song.collection_class.schema_name
song_document = get_document(schema_name, self.song.pk)

self.assertIsNotNone(song_document)
self.assertEqual(song_document["title"], self.song.title)
self.assertEqual(song_document["genre_id"], self.song.genre.pk)
self.assertEqual(song_document["genre_name"], self.song.genre.name)
self.assertEqual(
song_document["release_date"], self.song.release_date_timestamp
)
self.assertEqual(song_document["number_of_views"], self.song.number_of_views)
self.assertEqual(
song_document["number_of_comments"], self.song.number_of_comments
)

def test_pre_delete_typesense_models(self):
schema_name = self.song.collection_class.schema_name
song_pk = self.song.pk

song_document = get_document(schema_name, song_pk)
self.assertIsNotNone(song_document)

self.genre.delete()
self.assertFalse(Song.objects.filter(pk=song_pk).exists())
song_document = get_document(schema_name, song_pk)
self.assertIsNone(song_document)

def test_m2m_changed_typesense_models(self):
schema_name = self.song.collection_class.schema_name

song_document = get_document(schema_name, self.song.pk)
self.assertIsNotNone(song_document)
self.assertCountEqual(song_document["artist_names"], self.song.artist_names())

self.song.artists.add(self.artist)
song_document = get_document(schema_name, self.song.pk)
self.assertIsNotNone(song_document)
self.assertCountEqual(song_document["artist_names"], self.song.artist_names())

artist_2 = Artist.objects.create(name="artist2")
artist_2.song_set.add(self.song)
song_document = get_document(schema_name, self.song.pk)
self.assertIsNotNone(song_document)
self.assertCountEqual(song_document["artist_names"], self.song.artist_names())

0 comments on commit e749670

Please sign in to comment.