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')
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)