Ejemplo n.º 1
0
 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())
Ejemplo n.º 2
0
 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()),
             )))
Ejemplo n.º 3
0
    """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()