def test__add_connects_signal_if_manager_is_enabled(self): manager = SignalsManager() manager.enable() signal = self.make_Signal() manager.add(signal) self.assertThat(signal.connect, MockCalledOnceWith()) self.assertThat(signal.disconnect, MockNotCalled())
def test__enable_enables_all_signals(self): manager = SignalsManager() signals = [self.make_Signal(), self.make_Signal()] for signal in signals: manager.add(signal) manager.enable() self.assertThat( signals, AllMatch( MatchesAll( AfterPreprocessing((lambda signal: signal.connect), MockCalledOnceWith()), AfterPreprocessing((lambda signal: signal.disconnect), MockNotCalled()), )))
"""Updates the `StaticIPAddress`'s to ensure that they are linked to the correct subnet.""" # Remove the IP addresses that no longer fall with in the CIDR. remove_ips = StaticIPAddress.objects.filter( alloc_type=IPADDRESS_TYPE.USER_RESERVED, subnet_id=subnet.id) remove_ips = remove_ips.extra(where=["NOT(ip << %s)"], params=[subnet.cidr]) remove_ips.update(subnet=None) # Add the IP addresses that now fall into CIDR. add_ips = StaticIPAddress.objects.filter(subnet__isnull=True) add_ips = add_ips.extra(where=["ip << %s"], params=[subnet.cidr]) add_ips.update(subnet_id=subnet.id) def post_created(sender, instance, created, **kwargs): if created: update_referenced_ip_addresses(instance) def updated_cidr(instance, old_values, **kwargs): update_referenced_ip_addresses(instance) signals.watch(post_save, post_created, sender=Subnet) signals.watch_fields(updated_cidr, Subnet, ["cidr"], delete=False) # Enable all signals by default. signals.enable()