def setUp(self): g = Group(name="h") g.save() c = Cred(title="historycred", password="******", group=g) c.save() self.c = c
def setUp(self): g = Group(name='h') g.save() c = Cred(title='historycred', password='******', group=g) c.save() self.c = c
def setUp(self): g = Group(name='h') g.save() c = Cred(title='testcred', password='******', group=g) c.save() d = Cred(title='todelete', password='******', group=g) d.save() d.delete() u = User(username='******') u.save() u.groups.add(g) u.save() f = User(username='******') f.save() s = User(username='******', is_staff=True) s.save() s.groups.add(g) s.save() self.c = c self.d = d self.u = u self.f = f self.s = s
def setUp(self): g = Group(name="h") g.save() c = Cred(title="testcred", password="******", group=g) c.save() d = Cred(title="todelete", password="******", group=g) d.save() d.delete() u = User(username="******") u.save() u.groups.add(g) u.save() f = User(username="******") f.save() s = User(username="******", is_staff=True) s.save() s.groups.add(g) s.save() self.c = c self.d = d self.u = u self.f = f self.s = s
def setUp(self): self.group = Group(name="testgroup") self.group.save() self.othergroup = Group(name="othergroup") self.othergroup.save() self.tag = Tag(name="tag") self.tag.save() self.unorm = User(username="******", email="*****@*****.**") self.unorm.set_password("password") self.unorm.save() self.unorm.groups.add(self.group) self.unorm.save() self.ustaff = User(username="******", email="*****@*****.**", is_staff=True) self.ustaff.set_password("password") self.ustaff.save() self.ustaff.groups.add(self.othergroup) self.ustaff.save() self.nobody = User(username="******", email="*****@*****.**") self.nobody.set_password("password") self.nobody.save() self.norm = Client() self.norm.login(username="******", password="******") self.staff = Client() self.staff.login(username="******", password="******") self.nobody = Client() self.nobody.login(username="******", password="******") self.cred = Cred(title="secret", password="******", group=self.group) self.cred.save() self.tagcred = Cred(title="tagged", password="******", group=self.group) self.tagcred.save() self.tagcred.tags.add(self.tag) self.tagcred.save() CredChangeQ.objects.add_to_changeq(self.cred)
class CredViewTests(TestCase): def setUp(self): self.group = Group(name="testgroup") self.group.save() self.othergroup = Group(name="othergroup") self.othergroup.save() self.tag = Tag(name="tag") self.tag.save() self.unorm = User(username="******", email="*****@*****.**") self.unorm.set_password("password") self.unorm.save() self.unorm.groups.add(self.group) self.unorm.save() self.ustaff = User(username="******", email="*****@*****.**", is_staff=True) self.ustaff.set_password("password") self.ustaff.save() self.ustaff.groups.add(self.othergroup) self.ustaff.save() self.nobody = User(username="******", email="*****@*****.**") self.nobody.set_password("password") self.nobody.save() self.norm = Client() self.norm.login(username="******", password="******") self.staff = Client() self.staff.login(username="******", password="******") self.nobody = Client() self.nobody.login(username="******", password="******") self.cred = Cred(title="secret", password="******", group=self.group) self.cred.save() self.tagcred = Cred(title="tagged", password="******", group=self.group) self.tagcred.save() self.tagcred.tags.add(self.tag) self.tagcred.save() CredChangeQ.objects.add_to_changeq(self.cred) def test_list_normal(self): resp = self.norm.get(reverse("cred.views.list")) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred in credlist) def test_list_staff(self): resp = self.staff.get(reverse("cred.views.list")) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) def test_list_by_tag_normal(self): resp = self.norm.get(reverse("cred.views.list_by_tag", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred in credlist) def test_list_by_tag_staff(self): resp = self.staff.get(reverse("cred.views.list_by_tag", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred not in credlist) def test_list_by_group_normal(self): resp = self.norm.get(reverse("cred.views.list_by_group", args=(self.group.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred in credlist) self.assertTrue(self.tagcred in credlist) def test_list_by_group_staff(self): resp = self.staff.get(reverse("cred.views.list_by_group", args=(self.othergroup.id,))) self.assertEqual(resp.status_code, 200) credlist = resp.context["credlist"].object_list self.assertTrue(self.cred not in credlist) self.assertTrue(self.tagcred not in credlist) def test_list_by_group_nobody(self): resp = self.nobody.get(reverse("cred.views.list_by_group", args=(self.othergroup.id,))) self.assertEqual(resp.status_code, 404) def test_tags_normal(self): resp = self.norm.get(reverse("cred.views.tags")) self.assertEqual(resp.status_code, 200) taglist = resp.context["tags"] self.assertTrue(self.tag in taglist) self.assertEqual(len(taglist), 1) def test_list_by_search_normal(self): resp = self.norm.get(reverse("cred.views.list_by_search", args=("tag",))) self.assertEqual(resp.status_code, 200) taglist = resp.context["tag"] credlist = resp.context["credlist"].object_list self.assertTrue(self.tag in taglist) self.assertEqual(len(taglist), 1) self.assertTrue(self.tagcred in credlist) self.assertTrue(self.cred not in credlist) def test_detail_normal(self): resp = self.norm.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.cred.id) self.assertEqual(resp.context["credlogs"], None) resp = self.norm.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.tagcred.id) self.assertEqual(resp.context["credlogs"], None) def test_detail_staff(self): resp = self.staff.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.cred.id) self.assertNotEqual(resp.context["credlogs"], None) resp = self.staff.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 200) self.assertEqual(resp.context["cred"].id, self.tagcred.id) self.assertNotEqual(resp.context["credlogs"], None) def test_detail_nobody(self): resp = self.nobody.get(reverse("cred.views.detail", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) resp = self.nobody.get(reverse("cred.views.detail", args=(self.tagcred.id,))) self.assertEqual(resp.status_code, 404) def test_add_normal(self): resp = self.norm.get(reverse("cred.views.add")) self.assertEqual(resp.status_code, 200) form = resp.context["form"] self.assertTrue(not form.is_valid()) resp = self.norm.post( reverse("cred.views.add"), {"title": "New Credential", "password": "******", "group": self.group.id, "icon": form["icon"].value()}, follow=True, ) self.assertEqual(resp.status_code, 200) newcred = Cred.objects.get(title="New Credential") self.assertEqual(newcred.password, "A password") def test_edit_normal(self): resp = self.norm.get(reverse("cred.views.edit", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["title"] = "New Title" resp = self.norm.post(reverse("cred.views.edit", args=(self.cred.id,)), post, follow=True) self.assertEqual(resp.status_code, 200) newcred = Cred.objects.get(id=self.cred.id) self.assertEqual(newcred.title, "New Title") def test_edit_nobody(self): resp = self.nobody.get(reverse("cred.views.edit", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) def test_delete_norm(self): resp = self.norm.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) resp = self.norm.post(reverse("cred.views.delete", args=(self.cred.id,))) delcred = Cred.objects.get(id=self.cred.id) self.assertTrue(delcred.is_deleted) def test_delete_staff(self): resp = self.staff.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 200) resp = self.staff.post(reverse("cred.views.delete", args=(self.cred.id,)), follow=True) self.assertEqual(resp.status_code, 200) delcred = Cred.objects.get(id=self.cred.id) self.assertTrue(delcred.is_deleted) def test_delete_nobody(self): resp = self.nobody.get(reverse("cred.views.delete", args=(self.cred.id,))) self.assertEqual(resp.status_code, 404) resp = self.nobody.post(reverse("cred.views.delete", args=(self.cred.id,)), follow=True) self.assertEqual(resp.status_code, 404) delcred = Cred.objects.get(id=self.cred.id) self.assertFalse(delcred.is_deleted) def test_tagadd_normal(self): resp = self.norm.get(reverse("cred.views.tagadd")) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["name"] = "New Tag" resp = self.norm.post(reverse("cred.views.tagadd"), post, follow=True) self.assertEqual(resp.status_code, 200) newcred = Tag.objects.get(name="New Tag") def test_tagedit_normal(self): resp = self.norm.get(reverse("cred.views.tagedit", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) form = resp.context["form"] post = {} for i in form: if i.value() is not None: post[i.name] = i.value() post["name"] = "A Tag" resp = self.norm.post(reverse("cred.views.tagedit", args=(self.tag.id,)), post, follow=True) self.assertEqual(resp.status_code, 200) newtag = Tag.objects.get(name="A Tag") self.assertEqual(newtag.id, self.tag.id) def test_tagdelete_normal(self): resp = self.norm.get(reverse("cred.views.tagdelete", args=(self.tag.id,))) self.assertEqual(resp.status_code, 200) resp = self.staff.post(reverse("cred.views.tagdelete", args=(self.tag.id,)), follow=True) self.assertEqual(resp.status_code, 200) with self.assertRaises(Tag.DoesNotExist): deltag = Tag.objects.get(id=self.tag.id) def test_viewqueue_normal(self): resp = self.norm.get(reverse("cred.views.viewqueue")) self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.context["queue"]), 1) self.assertEqual(resp.context["queue"][0].cred.id, self.cred.id) def test_viewqueue_nobody(self): resp = self.nobody.get(reverse("cred.views.viewqueue")) self.assertEqual(resp.status_code, 200) self.assertEqual(len(resp.context["queue"]), 0) def test_addtoqueuestaff(self): resp = self.staff.get(reverse("cred.views.addtoqueue", args=(self.tagcred.id,)), follow=True) self.assertEqual(resp.status_code, 200) self.assertTrue(self.tagcred.on_changeq())
def issue_cred(): if request.method == "POST": data = json.loads(request.data) issuer_did = data['issuer_did'] cred_issues_to = data['cred_issues_to'] cred_name = data['cred_name'] cred_description = data['cred_description'] cred_status = data['cred_status'] cred_validity = data['cred_validity'] d = did.query.get(cred_issues_to) ipfshash = d.ipfshash did_doc = client.cat(ipfshash) did_doc = json.loads(did_doc) print('id_Docs is the jojj', did_doc) print(did_doc['service'][1]['serviceEndpoint']) print(did_doc['service'][2]['serviceEndpoint'] + "-".join(cred_name.split(' '))) resp = requests.post(did_doc['service'][2]['serviceEndpoint'] + "-".join(cred_name.split(' '))) print(resp.text) resp = resp.json() print(resp) policy_encrypting_key = resp['result']['policy_encrypting_key'] subprocess.Popen([ 'nucypher', 'enrico', 'run', '--policy-encrypting-key', policy_encrypting_key, '--http-port', '5151' ]) time.sleep(5) message = { "message": str(cred_name + "---" + cred_description + "---" + cred_status) } resp_encrypt = requests.post( did_doc['service'][1]['serviceEndpoint'], data=json.dumps(message), headers={'Content-Type': 'application/json'}) print(resp_encrypt.content) resp_encrypt = resp_encrypt.json() print('resp_encrypted json', resp_encrypt) message_kit = resp_encrypt['result']['message_kit'] c = Cred(cred_name=cred_name, cred_description=cred_description, cred_status=cred_status, cred_issued_to=cred_issues_to, cred_issued_from=issuer_did, cred_encrypted=message_kit, cred_validity=cred_validity) db.session.add(c) db.session.commit() return jsonify({'status': 'Success'})