예제 #1
0
    def test_get_conflicts(self):
        self.assertTrue(Person.get_conflicts() == [])

        first_name = "Cezary"
        last_name = "Kotko"
        photo_url = "http://kokso.wtf/cezary.jpeg"

        new_person1 = Person.objects.create_person(
            first_name=first_name,
            last_name=last_name,
            linkedin="http://www.linkedin.com/costam1",
            photo_url=photo_url,
        )
        new_person1.save()
        new_person2 = Person.objects.create_person(
            first_name=first_name,
            last_name=last_name,
            linkedin="http://www.linkedin.com/costam2",
            photo_url=photo_url,
        )
        new_person2.save()

        conflicts = Person.get_conflicts()
        self.assertEqual(set(conflicts), {new_person1, new_person2})

        resolved_conflicts = resolved_conflicts = ResolvedConflict(
            person_one=new_person1,
            person_two=new_person2
        )
        resolved_conflicts.save()

        self.assertTrue(Person.get_conflicts() == [])
예제 #2
0
def resolve_conflicts(request):
    try:
        person_ids_json = request.POST.get('ids')
        person_ids = json.loads(person_ids_json)
        photo = request.POST.get('img')
        state = request.POST.get('state')
        linkedin = request.POST.get('linkedin', 0)
        goldenline = request.POST.get('goldenline', 0)
        email = request.POST.get('email', 0)
        merge = json.loads(request.POST.get('merge'))
    except KeyError:
        raise Http404

    if merge:
        Person.merge(person_ids, photo, state, linkedin, goldenline, email)
    else:
        Person.dont_merge(person_ids)
    return HttpResponse(status=200, content=200, content_type="plain/text")
예제 #3
0
    def test_dont_merge(self):
        c = Client(enforce_csrf_checks=False)
        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 0)
        self.assertEqual(len(Person.objects.all()), 6)
        new_person1 = Person.objects.create_person(
            first_name="Taka",
            last_name="Sama"
        )
        new_person1.save()

        new_person2 = Person.objects.create_person(
            first_name="Taka",
            last_name="Sama",
            linkedin="http://www.linkedin.com/costam2",
            photo_url="http://japonskie_twarze.pl/taka_sama.png"
        )
        new_person2.save()

        self.assertEqual(len(Person.objects.all()), 8)
        all_people_list = Person.objects.all()

        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 2)
        response_post = c.post('/candidate/resolve_conflicts/',
                               {'ids': '[7,8]', 'img': 0, 'state': 0,
                                'merge': 'false'})
        self.assertEqual(response_post.status_code, 200)

        new_all_people_list = Person.objects.all()
        self.assertEqual(len(all_people_list), len(new_all_people_list))
        for i in xrange(len(all_people_list)):
            self.assertEqual(all_people_list[i], new_all_people_list[i])

        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 0)
예제 #4
0
def get_conflicts(request):
    conflicting_candidates = Person.get_conflicts()
    response = [c.to_json() for c in conflicting_candidates],
    return HttpResponse(json.dumps(response), content_type="application/json")
예제 #5
0
    def test_merge(self):
        c = Client(enforce_csrf_checks=False)
        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 0)
        self.assertEqual(len(Person.objects.all()), 6)
        new_person1 = Person.objects.create_person(
            first_name="Taka",
            last_name="Sama"
        )
        new_person1.save()

        new_person2 = Person.objects.create_person(
            first_name="Taka",
            last_name="Sama",
            linkedin="http://www.linkedin.com/costam2",
            photo_url="http://japonskie_twarze.pl/taka_sama.png"
        )
        new_person2.save()

        # caveats should concat
        candidate1 = Person.objects.get(pk=7)
        candidate1.caveats = "2+2="
        candidate1.save()

        candidate2 = Person.objects.get(pk=8)
        candidate2.caveats = "2*2"
        candidate2.save()

        # attachments should concat!
        with open(BASE_DIR +
                  '/power_recruiter/tests/upload_files/readme.txt') as fp:
            response_post = c.post('/candidate/attachment/upload/',
                                   {'person': '7', 'file': fp}, follow=True)
        self.assertEqual(response_post.status_code, 200)
        self.assertEqual(len(Attachment.objects.all()), 1)

        # Add second file to same person
        self.assertEqual(len(Attachment.objects.all()), 1)
        with open(BASE_DIR +
                  '/power_recruiter/tests/upload_files/list.txt') as fp:
            response_post = c.post('/candidate/attachment/upload/',
                                   {'person': '8', 'file': fp}, follow=True)
        self.assertEqual(response_post.status_code, 200)
        self.assertEqual(len(Attachment.objects.all()), 2)

        self.assertEqual(len(Person.objects.all()), 8)

        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 2)
        response_post = c.post('/candidate/resolve_conflicts/',
                               {'ids': '[7,8]', 'img': 1, 'state': 1,
                                'merge': 'true'})
        self.assertEqual(response_post.status_code, 200)

        self.assertEqual(len(Person.objects.all()), 7)

        candidate = Person.objects.get(pk=7)
        self.assertEqual(candidate.first_name, "Taka")
        self.assertEqual(candidate.last_name, "Sama")
        self.assertEqual(candidate.current_state_started.date(),
                         datetime.datetime.now().date())
        self.assertEqual(candidate.state.pk, 0)
        self.assertEqual(candidate.photo_url,
                         "http://japonskie_twarze.pl/taka_sama.png")
        self.assertEqual(candidate.linkedin, None)
        self.assertEqual(candidate.goldenline, None)
        self.assertEqual(candidate.email, None)
        self.assertEqual(candidate.caveats, "2+2=2*2")
        self.assertEqual(candidate.caveats_timestamp.date(),
                         datetime.datetime.now().date())
        self.assertEqual(len(Attachment.objects.all().filter(person=7)), 2)

        conflicts = Person.get_conflicts()
        self.assertEqual(len(conflicts), 0)