def test_result_notified_unavailable_updates_apartment_and_listings(): listing_id = listing_service.create_listing(**result_test_data.cl_listing_4033538277).id search_id = search_service.create_search(**result_test_data.search_1).id listing = Listing.objects.get(pk=listing_id) apartment = listing.apartment search = Search.objects.get(pk=search_id) result_id = result_service.create_result(apartment, search).id result = Result.objects.get(pk=result_id) result.add_availability_response('This is a test', timezone.now(), Availability.objects.get_unavailable_type()) result_service.save_or_update(result) apartment = apartment_service.get_apartment(apartment.pk) assert apartment.is_available == False listings = apartment.listings.values_list('is_deleted', flat=True) assert all(f == True for f in listings)
def save(self, internal=False, *args, **kwargs): if internal: with transaction.commit_on_success(): with reversion.create_revision(): super(Result, self).save(*args, **kwargs) serializer = JSONSerializer() for event in self._uncommitted_events: #we don't need to store the instance because it's not really part of the parameters #and django-reversion will keep a snapshop kwargs_to_save = {k: v for k, v in event.kwargs.items() if k != 'instance'} data = serializer.serialize(kwargs_to_save) reversion.add_meta(RevisionEvent, name=event.event_fq_name, version=event.version, data=data) self.send_events() else: from scrapy_test.aggregates.result.services import result_service result_service.save_or_update(self)