def test_sync_server_side_client_ip(self): service_config = get_service_config([ Service("ownCloud", "http", "_http._tcp", 80, url="owncloud"), Service("SSH", "https", "_http._tcp", 81, url=None) ]) port_config = get_port_config([Port(80, 80), Port(81, 81)]) upnpc = get_upnpc(external_ip='10.1.1.1') upnpc.mapped_external_ports = MagicMock(side_effect=[[], [80]]) port_mapper = get_port_mapper(port_config, upnpc) domain_config = get_domain_config(Domain('boris', 'some_update_token')) responses.add(responses.POST, "http://api.domain.com/domain/update", status=200, body="{'message': 'Domain was updated'}", content_type="application/json") insider_config = get_insider_config('domain.com', 'http://api.domain.com') dns = Dns(insider_config, domain_config, service_config, port_mapper, '127.0.0.1') dns.sync() expected_request = ''' { "services": [ {"name": "ownCloud", "protocol": "http", "type": "_http._tcp", "port": 80, "local_port": 80, "url": "owncloud"}, {"name": "SSH", "protocol": "https", "type": "_http._tcp", "port": 81, "local_port": 81, "url": null} ], "token": "some_update_token", "local_ip": "127.0.0.1" } ''' self.assertSingleRequest(expected_request)
def test_sync_server_error(self): service_config = get_service_config([Service("ownCloud", "http", "_http._tcp", 80, url="owncloud")]) port_config = get_port_config([Port(80, 10000)]) upnpc = get_upnpc(external_ip='192.167.44.52') port_mapper = get_port_mapper(port_config, upnpc) domain_config = get_domain_config(Domain('boris', 'some_update_token')) responses.add(responses.POST, "http://api.domain.com/domain/update", status=400, body='{"message": "Unknown update token"}', content_type="application/json") insider_config = get_insider_config('domain.com', 'http://api.domain.com') dns = Dns(insider_config, domain_config, service_config, port_mapper, '127.0.0.1') with self.assertRaises(Exception) as context: dns.sync() self.assertEquals(context.exception.message, "Unknown update token")