class PublicAccessSystemTestCase(TransactionTestCase): def setUp(self): john = User(username='******', email='*****@*****.**', is_active=True) john.set_password('password101') john.save() self.concept = Concept(title='title', description='title', user=john, published=True) self.concept.save() strip_image_path = os.path.join(os.getcwd(), 'test.png') strip_image = SimpleUploadedFile(name='strip.jpg', content=open(strip_image_path, 'rb').read(), content_type='image/jpeg') strip = Strip(concept=self.concept, user=john, image=strip_image) strip.save() def test_page_contains_directional_links_next_previous_last_first(self): url = reverse('public:slug', args=[self.concept.slug]) response = self.client.get(url, follow=True) html_text = response.content.decode('utf-8').lower() self.assertTrue('first' in html_text) self.assertTrue('previous' in html_text) self.assertTrue('random' in html_text) self.assertTrue('next' in html_text) self.assertTrue('last' in html_text)
def setUp(self): # create user john = User(username='******', email='*****@*****.**', is_active=True) john.set_password('password101') john.save() concept = Concept(title='title',description='title',user=john) concept.save() self.concept = concept
class GimpTestCase(TransactionTestCase): def setUp(self): john = User(username='******', email='*****@*****.**', is_active=True) john.set_password('password101') john.save() self.concept = Concept(title='title', description='title', user=john) self.concept.save() def test_gimp_create_url_fail(self): url = '/gimp/concept/' + str(self.concept.id) + '/add_gimp/' response = self.client.get(url, follow=True) self.assertNotEqual(response.status_code, 404) self.assertRedirects(response, '%s?next=%s' %(reverse('auth:login'), url)) def test_gimp_create_url_pass(self): self.client.login(username='******', password='******') url = '/gimp/concept/' + str(self.concept.id) + '/add_gimp/' response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) def test_upload_gimp(self): self.client.login(username='******', password='******') test_gimp = SimpleUploadedFile("gimp.xcf", b"file_content") url = '/gimp/concept/' + str(self.concept.id) + '/add_gimp/' response = self.client.post(url, {'file_gimp' : test_gimp}, format='multipart', follow=True) gimp = Gimp.objects.get(concept = self.concept) self.assertTrue("title" in gimp.file_gimp.name) self.assertRedirects(response, reverse('concept:detail_concept', kwargs={'pk':self.concept.pk})) def upload_gimp(self): self.client.login(username='******', password='******') test_gimp = SimpleUploadedFile("gimp.xcf", b"file_content") url = '/gimp/concept/' + str(self.concept.id) + '/add_gimp/' response = self.client.post(url, {'file_gimp' : test_gimp}, format='multipart', follow=True) # def test_gimp_edit_url_fail(self): url = '/gimp/concept/' + str(self.concept.id) + '/edit_gimp/' response = self.client.get(url, follow=True) self.assertRedirects(response, '%s?next=%s' %(reverse('auth:login'),url)) # def test_gimp_edit_url_pass(self): self.upload_gimp() self.client.login(username='******', password='******') url = '/gimp/concept/' + str(self.concept.id) + '/edit_gimp/' response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) def test_update_sketch(self): self.upload_gimp() self.client.login(username='******', password='******') test_gimp = SimpleUploadedFile("gimp.xcf", b"file_content") url = '/gimp/concept/' + str(self.concept.id) + '/edit_gimp/' response = self.client.post(url , {'file_gimp': test_gimp}, format='multipart', follow=True) gimp = Gimp.objects.get(concept = self.concept) self.assertTrue("title" in gimp.file_gimp.name)
class StripTestCase(TransactionTestCase): def setUp(self): john = User(username='******', email='*****@*****.**', is_active=True) john.set_password('password101') john.save() self.concept = Concept(title='title', description='title', user=john) self.concept.save() def test_strip_create_url_fail(self): url = '/strip/concept/' + str(self.concept.id) + '/add_strip/' response = self.client.get(url, follow=True) self.assertNotEqual(response.status_code, 404) self.assertRedirects(response, '%s?next=%s' % (reverse('auth:login'), url)) def test_strip_create_url_pass(self): self.client.login(username='******', password='******') url = '/strip/concept/' + str(self.concept.id) + '/add_strip/' response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200) def test_upload_strip(self): self.client.login(username='******', password='******') test_strip = open(os.path.join(os.getcwd(), 'test.png'), "rb") url = '/strip/concept/' + str(self.concept.id) + '/add_strip/' response = self.client.post(url, {'image': test_strip}, format='multipart', follow=True) strip = Strip.objects.get(concept=self.concept) self.assertTrue("title" in strip.image.name) self.assertRedirects( response, reverse('concept:detail_concept', kwargs={'pk': self.concept.pk})) def upload_strip(self): self.client.login(username='******', password='******') test_strip = open(os.path.join(os.getcwd(), 'test.png'), "rb") url = '/strip/concept/' + str(self.concept.id) + '/add_strip/' response = self.client.post(url, {'image': test_strip}, format='multipart', follow=True) # def test_strip_edit_url_fail(self): url = '/strip/concept/' + str(self.concept.id) + '/edit_strip/' response = self.client.get(url, follow=True) self.assertRedirects(response, '%s?next=%s' % (reverse('auth:login'), url)) def test_strip_edit_url_pass(self): self.upload_strip() self.client.login(username='******', password='******') url = '/strip/concept/' + str(self.concept.id) + '/edit_strip/' response = self.client.get(url, follow=True) self.assertEqual(response.status_code, 200)
def create(request): if request.method == 'POST': print("POST") form = ConceptForm(request.POST,instance=Concept()) if form.is_valid(): form.save() return listing(request) return render_to_response('concept/create.html', {'theform' : form, 'image': 1, 'etat':'invalide' },context_instance=RequestContext(request)) elif request.method == 'GET': form = ConceptForm(instance=Concept()) return render_to_response('concept/create.html', {'theform' : form, 'image': 1,'etat':'valide' },context_instance=RequestContext(request))
def setUp(self): john = User(username='******', email='*****@*****.**', is_active=True) john.set_password('password101') john.save() self.concept = Concept(title='title', description='title', user=john, published=True) self.concept.save() strip_image_path = os.path.join(os.getcwd(), 'test.png') strip_image = SimpleUploadedFile(name='strip.jpg', content=open(strip_image_path, 'rb').read(), content_type='image/jpeg') strip = Strip(concept=self.concept, user=john, image=strip_image) strip.save()
def test_indirect_cycle(self): #c1 = Concept(name="racine",lname="plus long la racine : carotte ?",description=" tss tss tss") #c1.save() c2 = Concept(name="variable",lname="px par exemple ?",description=" encore un concept") c2.save() c3 = Concept(name="Troisième",lname="px mple ?", description=" encore un concept pour une detection lointaine de cycle") c3.save() l1= Link(ascendant=Concept.racine(),descendant=c2) l2= Link(ascendant=c2,descendant=c3) l3 =Link(ascendant=c3,descendant=Concept.racine()) l1.save() l2.save() try: l3.save() # ceci doit échouer car cela créerai un cycle indirect except CreateCycleException as e: print(e) except Exception : self.fail("din't raise CreateCycleException") self.assertEqual(Link.objects.all().count(),2) # y en a 3
def test_direct_cycle(self): # remarque cette méthode count évite de créer le quéry set et utilise le sql directement self.assertEqual(Concept.objects.all().count(),1) c2 = Concept(name="variable",lname="px par exemple ?",description=" encore un concept") c2.save() self.assertEqual(Concept.objects.all().count(),2) c1=Concept.racine() l1=Link(descendant=c2,ascendant=c1) l1.save() print(l1) self.assertEqual(Link.objects.all().count(),1) l2=Link(descendant=c1,ascendant=c2) try: l2.save() # ceci doit échouer car cela créerai un cycle except CreateCycleException as e: print(e) except Exception : self.fail("din't raise CreateCycleException") self.assertEqual(Link.objects.all().count(),1)
def get(self, request): concepts = Concept.get_concepts_created_by_user(user=request.user) return Response(concepts.data)
def test_insert_and_delete(self): ''' verifier que le lien ne fait pas sauter des dépendances si l'on retire un lien il y a deux cas de figure 1) Full : on retire le lien et tous ces prérequis 2) local: on retire le lien mais l'on rajoute tous ces dépendatence directes Pour tester il fau1t créer un graphe asser complexe de hauteur 4 ''' c1 = Concept.racine() c2 = Concept(name="variable",lname="px par exemple ?",description=" encore un concept") c2.save() self.assertEqual(1,Link.objects.all().count()) # création automatique du lien vers la racine c3 = Concept(name="Troisième",lname="px mple ?", description=" pfff ") c3.save() c4 = Concept(name="Quatre",lname="px mple ?", description=" poliveau ") c4.save() c5 = Concept(name="CINQ",lname="px mple ?", description=" entre la rue de Vanve et la rue didot") c5.save() # creation des liens avec la racine automatique donc 4 liens après la création de 5 concepts self.assertEqual(4,Link.objects.all().count()) l2= Link(ascendant=c2,descendant=c3) l2.save() # le lien c3 -> c1 disparait self.assertEqual(4,Link.objects.all().count()) l3 =Link(ascendant=c3,descendant=c4) l3.save() # le lien c4 -> c1 est retiré self.assertEqual(4,Link.objects.all().count()) l4 =Link(ascendant=c4,descendant=c5) l4.save() # idem self.assertEqual(4,Link.objects.all().count()) Concept.objects.filter(pk=1).delete() # ne pas effacer la racine self.assertEqual(4,Link.objects.all().count())
def testDelete(self): self.assertEqual(1,Concept.objects.count()) ck = Concept(name="Bob",lname="un nom plus long ",description=" tss tss tss") ck.save() ck.delete() self.assertEqual(1,len(Concept.objects.all()))
def setUp(self): c1 = Concept(name="racine",lname="plus long la racine : carotte ?",description=" tss tss tss") c1.save() c1.delete() self.assertEqual(c1.pk,1)