Python django.db.models.signals.post_save.disconnect() Examples
The following are 30
code examples of django.db.models.signals.post_save.disconnect().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
django.db.models.signals.post_save
, or try the search function
.

Example #1
Source File: tests.py From django-sqlserver with MIT License | 6 votes |
def test_update_fields_signals(self): p = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) p.save(update_fields=['name']) self.assertEqual(len(pre_save_data), 1) self.assertEqual(len(pre_save_data[0]), 1) self.assertIn('name', pre_save_data[0]) self.assertEqual(len(post_save_data), 1) self.assertEqual(len(post_save_data[0]), 1) self.assertIn('name', post_save_data[0]) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #2
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_attachment_executed(self): def handler(instance, **kwarg): # get post on landing page event if instance.target_tracker.key != TRACKER_ATTACHMENT_EXECUTED: # ignore other target event return self.assertEqual(instance.ip, '127.0.0.1') self.assertEqual(instance.user_agent, 'Outlook') raise SuccessException() post_save.connect(handler, sender=TrackerInfos) # call tracker self.send_campaign() attachment = json.loads(mail.outbox[-1].attachments[0][1].decode()) tracker_url = attachment['tracker_url'] # test if handler has call with self.assertRaises(SuccessException): self.client.defaults['HTTP_USER_AGENT'] = 'Outlook' self.client.get(tracker_url) # clean self.assertTrue(post_save.disconnect(handler, sender=TrackerInfos))
Example #3
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_email_open(self): def handler(instance, **kwarg): # get email open event if instance.target_tracker.key != TRACKER_EMAIL_OPEN: # ignore other target event return self.assertEqual(instance.ip, '127.0.0.1') self.assertEqual(instance.user_agent, 'Outlook') raise SuccessException() post_save.connect(handler, sender=TrackerInfos) # call tracker self.send_campaign() mail_html = mail.outbox[-1].alternatives[0][0] tracker_url = mail_html.split('src="')[-1].split('"')[0] # test if handler has call with self.assertRaises(SuccessException): self.client.defaults['HTTP_USER_AGENT'] = 'Outlook' self.client.get(tracker_url) # clean self.assertTrue(post_save.disconnect(handler, sender=TrackerInfos))
Example #4
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_add_item(self): # add value handler def handler(urls, **kwarg): urls.append({ 'name': 'test', 'url': 'http://google.fr', }) make_menu.connect(handler) # test item = self.get('test') self.assertIsNotNone(item) self.assertEqual(item['url'], 'http://google.fr') # clean self.assertTrue(make_menu.disconnect(handler))
Example #5
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_delete_vars(self): # add value handler def handler(vars_data, **kwarg): var_data = self._search_name(vars_data, 'email') self.assertIsNotNone(var_data) vars_data.remove(var_data) make_template_vars.connect(handler) # test value var_data = self.get('email') self.assertIsNone(var_data) # test replace content = replace_template_vars('{{ email }}') self.assertEqual(content, '{{ email }}') # clean self.assertTrue(make_template_vars.disconnect(handler))
Example #6
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_edit_vars(self): # add value handler def handler(vars_data, **kwarg): var_data = self._search_name(vars_data, 'email') self.assertIsNotNone(var_data) var_data['value'] = 'Hello Word!' make_template_vars.connect(handler) # test value var_data = self.get('email') self.assertIsNotNone(var_data) self.assertEqual(var_data['value'], 'Hello Word!') # test replace content = replace_template_vars('{{ email }}') self.assertEqual(content, 'Hello Word!') # clean self.assertTrue(make_template_vars.disconnect(handler))
Example #7
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_add_vars(self): # add value handler def handler(vars_data, **kwarg): vars_data.append({ 'name': 'test_var', 'description': 'Is a test!', 'value': 'Hello!', }) make_template_vars.connect(handler) # test value var_data = self.get('test_var') self.assertIsNotNone(var_data) self.assertEqual(var_data['value'], 'Hello!') self.assertEqual(var_data['description'], 'Is a test!') # test replace content = replace_template_vars('{{ test_var }}') self.assertEqual(content, 'Hello!') # clean self.assertTrue(make_template_vars.disconnect(handler))
Example #8
Source File: signal.py From mercure with GNU General Public License v3.0 | 6 votes |
def test_edit_campaign_report_item(self): def handler(context, **kwarg): context['tabs_layout']['Test'] = context['tabs_layout']. \ pop('Other') make_campaign_report.connect(handler) # test content = self.get() self.assertIn('<a href="#test" aria-controls="test" role="tab" ' 'data-toggle="tab">Test</a>', content) self.assertIn('id="test"', content) self.assertNotIn('<a href="#other" aria-controls="other" ' 'role="tab" data-toggle="tab">Other</a>', content) self.assertNotIn('id="other"', content) # clean self.assertTrue(make_campaign_report.disconnect(handler))
Example #9
Source File: tests.py From django-sqlserver with MIT License | 6 votes |
def test_empty_update_fields(self): s = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) # Save is skipped. with self.assertNumQueries(0): s.save(update_fields=[]) # Signals were skipped, too... self.assertEqual(len(pre_save_data), 0) self.assertEqual(len(post_save_data), 0) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #10
Source File: registration.py From algoliasearch-django with MIT License | 6 votes |
def unregister(self, model): """ Unregisters the given model with Algolia engine. If the given model is not registered with Algolia engine, a RegistrationError will be raised. """ if not self.is_registered(model): raise RegistrationError( '{} is not registered with Algolia engine'.format(model)) # Perform the unregistration. del self.__registered_models[model] # Disconnect from the signalling framework. post_save.disconnect(self.__post_save_receiver, model) pre_delete.disconnect(self.__pre_delete_receiver, model) logger.info('UNREGISTER %s', model)
Example #11
Source File: mixins.py From django-knocker with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _disconnect(cls): """ Disconnect signal from current model """ pre_save.disconnect( notify_items_pre_save, sender=cls, dispatch_uid='knocker_pre_save_{0}'.format(cls.__name__) ) post_save.disconnect( notify_items_post_save, sender=cls, dispatch_uid='knocker_post_save_{0}'.format(cls.__name__) ) pre_delete.disconnect( notify_items_pre_delete, sender=cls, dispatch_uid='knocker_pre_delete_{0}'.format(cls.__name__) ) post_delete.disconnect( notify_items_post_delete, sender=cls, dispatch_uid='knocker_post_delete_{0}'.format(cls.__name__) )
Example #12
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_update_fields_signals(self): p = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) p.save(update_fields=['name']) self.assertEqual(len(pre_save_data), 1) self.assertEqual(len(pre_save_data[0]), 1) self.assertIn('name', pre_save_data[0]) self.assertEqual(len(post_save_data), 1) self.assertEqual(len(post_save_data[0]), 1) self.assertIn('name', post_save_data[0]) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #13
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_empty_update_fields(self): s = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) # Save is skipped. with self.assertNumQueries(0): s.save(update_fields=[]) # Signals were skipped, too... self.assertEqual(len(pre_save_data), 0) self.assertEqual(len(post_save_data), 0) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #14
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_update_fields_signals(self): p = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) p.save(update_fields=['name']) self.assertEqual(len(pre_save_data), 1) self.assertEqual(len(pre_save_data[0]), 1) self.assertIn('name', pre_save_data[0]) self.assertEqual(len(post_save_data), 1) self.assertEqual(len(post_save_data[0]), 1) self.assertIn('name', post_save_data[0]) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #15
Source File: tests.py From djongo with GNU Affero General Public License v3.0 | 6 votes |
def test_empty_update_fields(self): s = Person.objects.create(name='Sara', gender='F') pre_save_data = [] def pre_save_receiver(**kwargs): pre_save_data.append(kwargs['update_fields']) pre_save.connect(pre_save_receiver) post_save_data = [] def post_save_receiver(**kwargs): post_save_data.append(kwargs['update_fields']) post_save.connect(post_save_receiver) # Save is skipped. with self.assertNumQueries(0): s.save(update_fields=[]) # Signals were skipped, too... self.assertEqual(len(pre_save_data), 0) self.assertEqual(len(post_save_data), 0) pre_save.disconnect(pre_save_receiver) post_save.disconnect(post_save_receiver)
Example #16
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_delete_campaign_report_item(self): def handler(context, **kwarg): del(context['tabs_layout']['Other']) make_campaign_report.connect(handler) # test content = self.get() self.assertNotIn('<a href="#other" aria-controls="other" ' 'role="tab" data-toggle="tab">Other</a>', content) self.assertNotIn('id="other"', content) # clean self.assertTrue(make_campaign_report.disconnect(handler))
Example #17
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_edit_on_call(self): # add value handler def handler(request, landing_page, **kwarg): user_agent = request.META.get('HTTP_USER_AGENT', '') landing_page.html = 'Hello world! %s' % user_agent landing_page_printed.connect(handler) # start campaign and get landing page url landing_page = LandingPage.objects.create( name='test', html='123' ) email_template = EmailTemplate.objects.create( name='test', email_subject='test', from_email='test@test.com', landing_page=landing_page, text_content='{{ landing_page_url }}', html_content='' ) target_group = TargetGroup.objects.create(name='test') Target.objects.create(email='test@test.com', group=target_group) campaign = Campaign.objects.create( name='test', email_template=email_template ) campaign.target_groups_add(target_group) self.assertTrue(campaign.send()) landing_page_url = mail.outbox[-1].body.split('<')[0] # call landing page ans test result self.client.defaults['HTTP_USER_AGENT'] = 'myUserAgent' response = self.client.get(landing_page_url) self.assertEqual(response.status_code, 200) self.assertEqual(response.content.decode(), 'Hello world! myUserAgent') # clean self.assertTrue(landing_page_printed.disconnect(handler))
Example #18
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_add_campaign_report_item(self): def handler(context, **kwarg): context['tabs_layout']['Test'] = [] make_campaign_report.connect(handler) # test content = self.get() self.assertIn('<a href="#test" aria-controls="test" role="tab" ' 'data-toggle="tab">Test</a>', content) self.assertIn('id="test"', content) # clean self.assertTrue(make_campaign_report.disconnect(handler))
Example #19
Source File: test_models.py From djongo with GNU Affero General Public License v3.0 | 5 votes |
def tearDown(self): post_save.disconnect(self.post_save_listener, sender=User)
Example #20
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_landing_page_post(self): def handler(instance, **kwarg): # get post on landing page event if instance.target_tracker.key != TRACKER_LANDING_PAGE_POST: # ignore other target event return self.assertEqual(instance.ip, '127.0.0.1') self.assertEqual(instance.user_agent, 'Firefox') self.assertEqual(instance.referer, 'https://webmail.com') self.assertIn('"login": "Admin"', instance.raw) raise SuccessException() post_save.connect(handler, sender=TrackerInfos) # call tracker self.send_campaign() tracker_url = mail.outbox[-1].body # call landing page response = self.client.get(tracker_url) self.assertEqual(response.status_code, 200) # get form infos html = response.content.decode() form = BeautifulSoup(html, 'html.parser').find('form') post_url = form.get('action') post_data = {i.get('name'): i.get('value') for i in form.find_all('input')} post_data['login'] = 'Admin' # test if handler has call with self.assertRaises(SuccessException): self.client.defaults['HTTP_USER_AGENT'] = 'Firefox' self.client.defaults['HTTP_REFERER'] = 'https://webmail.com' self.client.post(post_url, post_data) # clean self.assertTrue(post_save.disconnect(handler, sender=TrackerInfos))
Example #21
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_email_send(self): def handler(instance, **kwarg): # get email open event if instance.key != TRACKER_EMAIL_SEND: # ignore other target event return self.assertEqual(instance.value, 'success') # add entry on db for set test in success => SuccessException make # infinite loop TrackerInfos.objects.create( target_tracker=instance, raw='handler_%s_test_ok' % TRACKER_EMAIL_SEND ) post_save.connect(handler, sender=Tracker) # send mail campaign = self.send_campaign() # test if handler has call raw = 'handler_%s_test_ok' % TRACKER_EMAIL_SEND test_result_tracker = TrackerInfos.objects.filter(raw=raw).first() self.assertIsNotNone(test_result_tracker) tracker = test_result_tracker.target_tracker self.assertEqual(campaign.pk, tracker.campaign.pk) self.assertEqual(TRACKER_EMAIL_SEND, tracker.key) # clean self.assertTrue(post_save.disconnect(handler, sender=Tracker))
Example #22
Source File: __init__.py From allianceauth with GNU General Public License v2.0 | 5 votes |
def disconnect_signals(): post_save.disconnect(receiver=reassess_on_profile_save, sender=UserProfile) pre_save.disconnect(receiver=signals.pre_save_config, sender=AutogroupsConfig) pre_delete.disconnect(receiver=signals.pre_delete_config, sender=AutogroupsConfig) post_save.disconnect(receiver=signals.check_groups_on_profile_update, sender=UserProfile) m2m_changed.disconnect(receiver=signals.autogroups_states_changed, sender=AutogroupsConfig.states.through)
Example #23
Source File: auth_utils.py From allianceauth with GNU General Public License v2.0 | 5 votes |
def disconnect_signals(cls): m2m_changed.disconnect(m2m_changed_user_groups, sender=User.groups.through) m2m_changed.disconnect(m2m_changed_group_permissions, sender=Group.permissions.through) m2m_changed.disconnect(m2m_changed_user_permissions, sender=User.user_permissions.through) m2m_changed.disconnect(m2m_changed_state_permissions, sender=State.permissions.through) pre_save.disconnect(disable_services_on_inactive, sender=User) m2m_changed.disconnect(state_member_corporations_changed, sender=State.member_corporations.through) m2m_changed.disconnect(state_member_characters_changed, sender=State.member_characters.through) m2m_changed.disconnect(state_member_alliances_changed, sender=State.member_alliances.through) post_save.disconnect(state_saved, sender=State)
Example #24
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_attachment_executed_with_data(self): def handler(instance, **kwarg): # get post on landing page event if instance.target_tracker.key != TRACKER_ATTACHMENT_EXECUTED: # ignore other target event return self.assertEqual(instance.ip, '127.0.0.1') self.assertEqual(instance.user_agent, 'Thunderbird') self.assertEqual(instance.raw, '{"hello": "world!"}') raise SuccessException() post_save.connect(handler, sender=TrackerInfos) # call tracker self.send_campaign() attachment = json.loads(mail.outbox[-1].attachments[0][1].decode()) tracker_url = attachment['tracker_url'] # test if handler has call with self.assertRaises(SuccessException): self.client.defaults['HTTP_USER_AGENT'] = 'Thunderbird' self.client.post(tracker_url, {'hello': 'world!'}) # clean self.assertTrue(post_save.disconnect(handler, sender=TrackerInfos))
Example #25
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_edit_send_email(self): # add value handler def handler(email_template, **kwarg): email_template.text_content = 'Hello!' email_template.html_content = 'Hi!' send_email.connect(handler) # start campaign and get landing page url landing_page = LandingPage.objects.create( name='test', html='123' ) email_template = EmailTemplate.objects.create( name='test', email_subject='test', from_email='test@test.com', landing_page=landing_page, text_content='{{ landing_page_url }}', html_content='' ) target_group = TargetGroup.objects.create(name='test') Target.objects.create(email='test@test.com', group=target_group) campaign = Campaign.objects.create( name='test', email_template=email_template ) campaign.target_groups_add(target_group) self.assertTrue(campaign.send()) self.assertEqual(mail.outbox[-1].body, 'Hello!') mail_html = mail.outbox[-1].alternatives[0][0] self.assertEqual(mail_html.split('<')[0], 'Hi!') # clean self.assertTrue(send_email.disconnect(handler))
Example #26
Source File: signal.py From mercure with GNU General Public License v3.0 | 5 votes |
def test_delete_item(self): # add value handler def handler(urls, **kwarg): item = self._search_name(urls, 'Campaigns') self.assertIsNotNone(item) urls.remove(item) make_menu.connect(handler) # test item = self.get('Campaigns') self.assertIsNone(item) # clean self.assertTrue(make_menu.disconnect(handler))
Example #27
Source File: iam_test_case.py From koku with GNU Affero General Public License v3.0 | 5 votes |
def setUpClass(cls): """Set up each test class.""" super().setUpClass() post_save.disconnect(storage_callback, sender=Sources) cls.customer_data = cls._create_customer_data() cls.user_data = cls._create_user_data() cls.request_context = cls._create_request_context(cls.customer_data, cls.user_data) cls.schema_name = cls.customer_data.get("schema_name") cls.tenant = Tenant.objects.get_or_create(schema_name=cls.schema_name)[0] cls.tenant.save() cls.headers = cls.request_context["request"].META cls.provider_uuid = UUID("00000000-0000-0000-0000-000000000001") cls.factory = RequestFactory()
Example #28
Source File: load_dump.py From es-django-example with Apache License 2.0 | 5 votes |
def handle(self, **options): post_save.disconnect(update_search, sender=Question) post_save.disconnect(update_search, sender=Answer) self.dir = options['dump_directory'] self._answers = set() self._questions = set() for m, f in ( ('Users', self.parse_users), ('Posts', self.parse_posts), ('Comments', self.parse_comments) ): self.verbose_run(f, m)
Example #29
Source File: apps.py From edx-enterprise with GNU Affero General Public License v3.0 | 5 votes |
def _disconnect_user_post_save_for_migrations(self, sender, **kwargs): # pylint: disable=unused-argument """ Handle pre_migrate signal - disconnect User post_save handler. """ from django.db.models.signals import post_save post_save.disconnect(sender=self.auth_user_model, dispatch_uid=USER_POST_SAVE_DISPATCH_UID)
Example #30
Source File: decorators.py From algoliasearch-django with MIT License | 5 votes |
def __enter__(self): for model in self.models: post_save.disconnect( algolia_engine._AlgoliaEngine__post_save_receiver, sender=model ) pre_delete.disconnect( algolia_engine._AlgoliaEngine__pre_delete_receiver, sender=model )