コード例 #1
0
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)
コード例 #2
0
ファイル: models.py プロジェクト: huokedu/dynamic-scrapy
  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)