def get_harvest_clients(request): """ Import new clients from harvest sequence 1/3 """ h = Harvest( settings.HARVEST_ADDRESS, settings.HARVEST_USER, settings.HARVEST_PASS ) response = [] for hclient in h.clients(): try: c = Client.objects.get(harvest_id=hclient.id) response.append({'harvest_id':hclient.id,'name':c.name,'status':'skipped'}) except: c = Client(harvest_id=hclient.id,name=hclient.name, details=hclient.details) response.append({'harvest_id':hclient.id,'name':hclient.name,'status':'added'}) c.save() return HttpResponse(simplejson.dumps(response,indent=2, ensure_ascii=False),mimetype='application/json')
class TestHarvest(unittest.TestCase): def setUp(self): self.harvest = Harvest(URL, USER, PWD) def test_00_isinstance(self): self.assertIsInstance(self.harvest,Harvest) def test_01_connect_fail(self): bad_harvest = Harvest(URL, "bogus_user","badpassword") self.assertRaises(Exception,bad_harvest._request, URL + "/people") def test_02_get_users(self): for user in self.harvest.users(): self.assertIsInstance(user, User) def test_03_get_invoices(self): for inv in self.harvest.invoices(): self.assertIsInstance(inv, Invoice) def test_04_get_clients(self): for client in self.harvest.clients(): self.assertIsInstance(client, Client)