def test_get_main_address(self): domeciles = DomecileFactory.build_batch( 3, address_2='34', postcode='DD2 9XE', postcode_point__postcode='DD29XE') domeciles[0].address_1 = 'Flat 16' domeciles[1].address_1 = 'Flat 17' domeciles[2].address_1 = 'Flat 18' with mock.patch('core.models.Domecile.objects.filter') as my_mock: my_mock.return_value = domeciles test_result = Domecile.get_main_address(domeciles[0].postcode) my_mock.assert_called_with(postcode=domeciles[0].postcode) self.assertEqual(test_result.prefix, 'Flat') self.assertEqual(test_result.suffix, '34 Snookit Street Dundee') domeciles[0].address_1 = 'Flat' test_result = Domecile.get_main_address(domeciles[0].postcode) self.assertEqual(test_result.prefix, 'Flat') self.assertEqual(test_result.suffix, '34 Snookit Street Dundee') domeciles[2].address_2 = '33' test_result = Domecile.get_main_address(domeciles[0].postcode) self.assertEqual(test_result.prefix, 'Flat') self.assertEqual(test_result.suffix, 'Snookit Street Dundee') domeciles[0].address_1 = '' test_result = Domecile.get_main_address(domeciles[0].postcode) self.assertEqual(test_result.prefix, '') self.assertEqual(test_result.suffix, 'Snookit Street Dundee')
def domecile_list_to_string(domecile_list): from core.models import Domecile domecile_list = sorted(domecile_list, key=domecile_key) if len(domecile_list) == 1: return unicode(domecile_list[0]) elif len(domecile_list) == 0: return '' # Find out if they're all even, or odd numbers number_types = '' domecile_indices = [consume_int(x.address_2) for x in domecile_list] comparisons = [x % 2 for x in domecile_indices] if all([x == 1 for x in comparisons]): number_types = '(Odds)' elif all([x == 0 for x in comparisons]): number_types = '(Evens)' first_index = 0 for i, domecile in enumerate(domecile_list): if consume_int(domecile.address_2) > 0: first_index = i break first_domecile = domecile_list[first_index] suffix = Domecile.get_main_address(first_domecile.postcode).suffix # suffix = ", ".join(y for y in [first_domecile.address_4, first_domecile.address_5, first_domecile.address_6, # first_domecile.postcode] if y) return " ".join(x for x in [ str(consume_int(first_domecile.address_2)) + "-" + str(consume_int(domecile_list[-1].address_2)), number_types, suffix, ] if x), len(domecile_list)
def separate_contacts_and_domiciles(line): domecile = { key.replace('Domecile.', ''): y for key, y in line.items() if 'Domecile.' in key } try: matched = Domecile.objects.get( **{ key.replace('Domecile.', ''): y for key, y in line.items() if 'Domecile.' in key }) except Domecile.DoesNotExist: matched = Domecile(**domecile) matched.save() contact = { key.replace('Contact.', ''): y for key, y in line.items() if 'Contact.' in key } contact = Contact(**contact) contact.domecile = matched return contact
def domecile_map_view(request): if 'region' in request.GET: klass = Region area = request.GET['region'] elif 'ward' in request.GET: klass = Ward area = request.GET['ward'] else: return JsonResponse(data={}) bbox = request.GET['BBox'].split(',') query_type = request.GET['query_type'] data = Domecile.get_postcode_points(southwest=(bbox[0], bbox[1]), northeast=(bbox[2], bbox[3]), region=klass.objects.get(pk=int(area)), query_type=query_type) for i in data: i['point'][0] = round(i['point'][0], 6) i['point'][1] = round(i['point'][1], 6) return JsonResponse(data={'data': data})
def domecile_address_view(request): from postcode_locator.models import PostcodeMapping if not request.GET.get('postcode', None): return JsonResponse(data={}) try: summary = Domecile.get_summary_of_postcode(request.GET['postcode']) contacts_count = Contact.objects.filter( domecile__postcode_point=PostcodeMapping.match_postcode( request.GET['postcode'])).count() data = { 'postcode': request.GET['postcode'], 'summary': summary[0], 'buildings': summary[1], 'contacts': contacts_count } except: data = { 'postcode': request.GET['postcode'], 'summary': 'No data found', 'buildings': 0, 'contacts': 0 } return JsonResponse(data=data)
def test_get_main_address_none(self): with mock.patch('core.models.Domecile.objects.filter') as my_mock: my_mock.return_value = [] test_result = Domecile.get_main_address('EH6 4SZ') self.assertEqual(test_result, None) my_mock.assert_called_with(postcode='EH6 4SZ')
def test_domecile_lists(self): d = Domecile.get_sorted_addresses(self.contact.domecile.postcode) ContactFactory.create_batch(5) self.assertEqual( d, Domecile.get_sorted_addresses(self.contact.domecile.postcode))