Example #1
0
def sanity(request, id):
    config = get_object_or_404(Config, pk=id)
    domains = config.domains.all() or config.domainrequests.all()
    domain_errors, domain_warnings = do_domain_checks(domains)
    config_errors, config_warnings = do_config_checks(config)
    data = simplejson.dumps({"errors": domain_errors + config_errors,
                             "warnings": domain_warnings + config_warnings,
                            })
    return HttpResponse(data, mimetype='application/json')
Example #2
0
    def test_do_domain_checks_errors(self):
        """ Test all import error/warnings returned by do_domain_checks
        """
        # Set up our mock expectations.
        # do_domain_checks compares first name servers of the first domain
        # with name servers of other domains. It will create a warning if we
        # return different name servers
        name = dns.name.from_text('test.org.')
        message = dns.message.from_text(ns_message_text('test.org',
                                                        'test.org'))
        answer = dns.resolver.Answer(name, dns.rdatatype.NS,
                                     dns.rdataclass.IN, message)
        dns.resolver.query('test.org', 'NS').AndReturn(answer)
        name = dns.name.from_text('test.com.')
        message = dns.message.from_text(ns_message_text('test.com',
                                                        'test.com'))
        answer = dns.resolver.Answer(name, dns.rdatatype.NS,
                                     dns.rdataclass.IN, message)
        dns.resolver.query('test.com', 'NS').AndReturn(answer)
        # now do_domain_checks will get domain name of all Domain objects and
        # its MX servers and compare against domain names of incoming server
        # and outgoing server. If they are different it will create an error
        # for each server
        name = dns.name.from_text('test.org.')
        message = dns.message.from_text(mx_message_text('test.org',
                                                        'test.org'))
        answer = dns.resolver.Answer(name, dns.rdatatype.MX,
                                     dns.rdataclass.IN, message)
        dns.resolver.query('test.org', 'MX').AndReturn(answer)
        name = dns.name.from_text('test.com.')
        message = dns.message.from_text(mx_message_text('test.com',
                                                        'test.com'))
        answer = dns.resolver.Answer(name, dns.rdatatype.MX,
                                     dns.rdataclass.IN, message)
        dns.resolver.query('test.com', 'MX').AndReturn(answer)

        self.mox.ReplayAll()

        #Test methods
        config = Config.objects.get(pk=1)
        # change to a different domain
        config.incoming_hostname = "mail.test.us"
        config.outgoing_hostname = "mail.test.us"
        config.save()
        errors, warnings = do_domain_checks(config.domains.all())

        # Verify the results (and the mock expectations.)
        self.mox.VerifyAll()
        assert_equal(len(errors), 2)
        assert_equal(len(warnings), 1)