Ejemplo n.º 1
0
    def test__when_slug_name_duplicate__should_raise_error(self):
        slug = Job(slug='peace-maker-c57fe949')
        slug1 = Job(slug='peace-maker-c57fe949')

        with self.assertRaises(IntegrityError):
            slug.save()
            slug1.save()
Ejemplo n.º 2
0
    def test_get_job_by_id(self):

        e1 = Event(name = "Software Conference",
                start_date = "2012-10-22",
                end_date = "2012-10-25")

        e1.save()

        j1 = Job(name = "Software Developer",
                start_date = "2012-10-22",
                end_date = "2012-10-23",
                description = "A software job",
                event = e1)

        j2 = Job(name = "Systems Administrator",
                start_date = "2012-9-1",
                end_date = "2012-10-26",
                description = "A systems administrator job",
                event = e1)

        j3 = Job(name = "Project Manager",
                start_date = "2012-1-2",
                end_date = "2012-2-2",
                description = "A management job",
                event = e1)

        j1.save()
        j2.save()
        j3.save()

        #test typical cases
        self.assertIsNotNone(get_job_by_id(j1.id))
        self.assertIsNotNone(get_job_by_id(j2.id))
        self.assertIsNotNone(get_job_by_id(j3.id))

        self.assertEqual(get_job_by_id(j1.id), j1)
        self.assertEqual(get_job_by_id(j2.id), j2)
        self.assertEqual(get_job_by_id(j3.id), j3)

        #test non-existant cases
        self.assertIsNone(get_job_by_id(100))
        self.assertIsNone(get_job_by_id(200))
        self.assertIsNone(get_job_by_id(300))
        self.assertIsNone(get_job_by_id(400))

        self.assertNotEqual(get_job_by_id(100), j1)
        self.assertNotEqual(get_job_by_id(100), j2)
        self.assertNotEqual(get_job_by_id(100), j3)
        self.assertNotEqual(get_job_by_id(200), j1)
        self.assertNotEqual(get_job_by_id(200), j2)
        self.assertNotEqual(get_job_by_id(200), j3)
        self.assertNotEqual(get_job_by_id(300), j1)
        self.assertNotEqual(get_job_by_id(300), j2)
        self.assertNotEqual(get_job_by_id(300), j3)
Ejemplo n.º 3
0
 def test_when_title_is_more_than_max_length_should_raise_error(self):
     job = Job(
         title=
         'Lorem Ipsum is simply dummy text of the printing and typesetting industry. '
         'Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, '
         'when an unknown printer took a galley of type and scrambled it to make a type '
         'specimen book. It has survived not only five centuries, but also the leap into '
         'electronic typesetting, remaining essentially unchanged. It was popularised in '
         'the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, '
         'and more recently with desktop publishing software like Aldus PageMaker '
         'including versions of Lorem Ipsum.',
         experience=1,
         salary_min=5000.00,
         salary_max=10000.00,
         qualification=self.qualification,
         job_gender=self.job_gender,
         application_deadline='',
         description='Test job',
         responsibilities='Web developer',
         education='Computer Science',
         other_benefits='Apple Watch',
         company=self.company,
         latitude=3.00,
         longitude=4.00,
     )
     with self.assertRaises(ValidationError):
         job.full_clean(exclude=exclude)
Ejemplo n.º 4
0
def create_jobs():
    profiles_ids = [
        p.id for p in Profile.search(None,
                                     params=validate_profile_search_params(
                                         {'profile_type': 'company'}))
    ]
    for job in JOBS:
        owner_id = profiles_ids[randrange(len(profiles_ids) - 1)]

        update_object(Job(owner_id=owner_id), job)
Ejemplo n.º 5
0
 def create(self, validated_data):
     user = self._get_request().user
     if hasattr(user, 'profile'):
         profile = user.profile
     else:
         profile = Profile(user=user)
         profile.save()
     instance = Job(owner=profile)
     instance_updated = update_object(instance, validated_data)
     return instance_updated
Ejemplo n.º 6
0
    def test_get_jobs_ordered_by_title(self):

        e1 = Event(name = "Software Conference",
                start_date = "2012-10-22",
                end_date = "2012-10-25")

        e1.save()

        j1 = Job(name = "Software Developer",
                start_date = "2012-10-22",
                end_date = "2012-10-23",
                description = "A software job",
                event = e1)

        j2 = Job(name = "Systems Administrator",
                start_date = "2012-9-1",
                end_date = "2012-10-26",
                description = "A systems administrator job",
                event = e1)

        j3 = Job(name = "Project Manager",
                start_date = "2012-1-2",
                end_date = "2012-2-2",
                description = "A management job",
                event = e1)

        j1.save()
        j2.save()
        j3.save()       
                    
        #test typical case
        job_list = get_jobs_ordered_by_title()
        self.assertIsNotNone(job_list)
        self.assertNotEqual(job_list, False)
        self.assertEqual(len(job_list), 3)
        self.assertIn(j1, job_list)
        self.assertIn(j2, job_list)
        self.assertIn(j3, job_list)

        #test order
        self.assertEqual(job_list[0].name, j3.name)
        self.assertEqual(job_list[1].name, j1.name)
        self.assertEqual(job_list[2].name, j2.name)
Ejemplo n.º 7
0
def postjob(request):
    if request.method == 'POST':
        obj2 = Job(jtitle=request.POST['jtitle'],
                   jcname=request.POST['jcompany'],
                   jobtype=request.POST['job-type'],
                   jstate=request.POST['jstate'],
                   jdistrict=request.POST['jdistrict'],
                   jdesc=request.POST['jdesc'])
        obj2.save()
    return render(request, 'adminpanel/postjob.html')
Ejemplo n.º 8
0
def create_job_with_details(job):
    """
    Creates and returns job with passed name and dates
    """

    j1 = Job(name=job[0],
             start_date=job[1],
             end_date=job[2],
             description=job[3],
             event=job[4])

    j1.save()
    return j1
Ejemplo n.º 9
0
def create_job_with_details(job):
    """
    Creates and returns job with passed name and dates
    """

    j1 = Job(name=job['name'],
             start_date=job['start_date'],
             end_date=job['end_date'],
             description=job['description'],
             event=job['event'])

    j1.save()
    return j1
Ejemplo n.º 10
0
    def get_shifts_ordered_by_date(self):

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j1.save()

        s1 = Shift(date="2012-1-10",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-6-25",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-12-9",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j1)

        s1.save()
        s2.save()
        s3.save()

        #test typical case
        shift_list = get_shifts_ordered_by_date(j1.id)
        self.assertIsNotNone(shift_list)
        self.assertNotEqual(shift_list, False)
        self.assertEqual(len(shift_list), 3)
        self.assertIn(s1, shift_list)
        self.assertIn(s2, shift_list)
        self.assertIn(s3, shift_list)

        #test order
        self.assertEqual(shift_list[0].date, s1.date)
        self.assertEqual(shift_list[1].date, s2.date)
        self.assertEqual(shift_list[2].date, s3.date)
Ejemplo n.º 11
0
    def post(self, request, *args, **kwargs):
        job_data = json.loads(request.body)
        if 'company_id' in job_data or 'company' in job_data:
            raise serializers.ValidationError('Unexpected Company/Company Id.')
        if 'title' not in job_data or not job_data['title']:
            raise serializers.ValidationError('Title is required.')
        if 'vacancy' not in job_data or not job_data['vacancy']:
            raise serializers.ValidationError('Vacancy is required.')
        if 'address' not in job_data or not job_data['address']:
            raise serializers.ValidationError('Address is required.')
        if 'job_site' not in job_data or not job_data['job_site']:
            raise serializers.ValidationError('Job site is required.')
        if 'job_nature' not in job_data or not job_data['job_nature']:
            raise serializers.ValidationError('Job nature is required.')
        if 'job_type' not in job_data or not job_data['job_type']:
            raise serializers.ValidationError('Job type is required.')
        if 'status' in job_data:
            if job_data['status'] != 'DRAFT' and job_data[
                    'status'] != 'POSTED' and job_data['status'] != '':
                raise serializers.ValidationError('Invalid status.')
        if 'salary_min' in job_data and job_data[
                'salary_min'] and 'salary_max' in job_data and job_data[
                    'salary_max']:
            if int(job_data['salary_min']) > int(job_data['salary_max']):
                raise serializers.ValidationError(
                    'Minimum salary cannot be greater than maximum salary')

        company = Company.objects.get(user_id=request.user.id)
        job_data['company'] = company
        try:
            skills = job_data['skills']
            del job_data['skills']
        except KeyError:
            skills = None

        job_obj = Job(**job_data)
        populate_user_info(request, job_obj, False, False)
        job_obj.save()
        if skills:
            skill_list = skills.split(',')
            for skill in skill_list:
                try:
                    skill_obj = Skill.objects.get(name=skill)
                except Skill.DoesNotExist:
                    skill_obj = None
                if skill_obj:
                    job_obj.job_skills.add(skill_obj)
        return Response(HTTP_200_OK)
Ejemplo n.º 12
0
 def test_when_title_is_null_should_raise_error(self):
     job = Job(
         experience=1,
         salary_min=5000.00,
         salary_max=10000.00,
         qualification=self.qualification,
         job_gender=self.job_gender,
         application_deadline='',
         description='Test job',
         responsibilities='Web developer',
         education='Computer Science',
         other_benefits='Apple Watch',
         company=self.company,
         latitude=3.00,
         longitude=4.00,
     )
     with self.assertRaises(ValidationError):
         job.full_clean(exclude=exclude)
Ejemplo n.º 13
0
def create_job_with_quote(quote):
    job = Job(customer_first_name=quote.customer_first_name,
              customer_last_name=quote.customer_last_name,
              address=quote.address,
              customer_email=quote.customer_email,
              customer_phone_num=quote.customer_phone_num,
              materials=quote.materials,
              job_description=quote.job_description,
              date_of_job=quote.date_of_job,
              removal_included=quote.removal_included,
              price_of_removal=quote.price_of_removal,
              price_of_materials=quote.price_of_materials,
              price_of_labour=quote.price_of_labour,
              job_price=quote.quote_price,
              issued_by=quote.issued_by,
              sent_invoice=False,
              associated_quote=quote._id)
    return job
Ejemplo n.º 14
0
 def post(self, request, *args, **kwargs):
     job_name = request.POST.get('job_name')
     job_desc = request.POST.get('job_desc')
     job_type = request.POST.get('job_type')
     job_content = request.POST.get('job_content')
     extra_vars = request.POST.get('extra_vars')
     if job_type == 'python':
         job_name = job_name + ".py"
     elif job_type == "shell":
         job_name = job_name + ".sh"
     elif job_type == "playbook":
         job_name = job_name
     job = Job(job_name=job_name,
               job_desc=job_desc,
               job_type=job_type,
               job_content=job_content,
               extra_vars=extra_vars)
     job.save()
     return JsonResponse({'message': 'add job {} success'.format(job_name)})
Ejemplo n.º 15
0
def add_job(job_db_id, user):
    job_db_obj = get_job_db_by_id(job_db_id)
    try:
        new_job_seen = Job(
            company=job_db_obj.company,
            location=job_db_obj.location,
            position=job_db_obj.position,
            description=job_db_obj.description,
            html_description=job_db_obj.html_description,
            link=job_db_obj.link,
            user=user
        )
        print("error 1")
        new_job_seen.save()
        print("error 2")
        return new_job_seen
    except Exception as e:
        print("Error during creating Job object, error is: ", e)
        return None
Ejemplo n.º 16
0
    def save(self, data, element_object=None):
        if element_object == None:
            job = Job()
            uid = self.generateUID()
            job.uid = uid
        else:
            job = element_object

        uid_env = self.parseData(data, "environnement")
        environnement = self.getEnv(uid_env)

        if not environnement == None:
            job.name = self.parseData(data, "name")
            job.command = self.parseData(data, "command")
            job.type = self.parseData(data, "type")
            job.schedule = self.parseData(data, "schedule")
            job.restart_policy = self.parseData(data, "restart_policy")
            job.back_off_limit = self.parseData(data, "back_off_limit")
            job.container_image = self.parseData(data, "container_image")
            job.environnement = environnement
            #job.config = self.parseData(data, "config")

            job.save()

            uid_container = self.parseData(data, "container")
            container_item = self.getContainer(uid_container)
            if not container_item == None:
                job.container.add(container_item)

            return {
                "status": "success",
                "message": "Saved",
                "element": "job",
                "uid": job.uid
            }
        else:
            return {
                "status": "error",
                "message": "Environnement Not exist",
                "element": "job"
            }
Ejemplo n.º 17
0
 def test_when_everything_is_given_should_pass(self):
     job = Job(
         title='Software Engineer',
         experience=1,
         salary_min=5000.00,
         salary_max=10000.00,
         qualification=self.qualification,
         job_gender=self.job_gender,
         application_deadline='',
         description='Test job',
         responsibilities='Web developer',
         education='Computer Science',
         other_benefits='Apple Watch',
         company=self.company,
         latitude=3.00,
         longitude=4.00,
     )
     try:
         job.full_clean(exclude=exclude)
     except:
         self.fail()
Ejemplo n.º 18
0
def JobAdd(request):
    data = {"added": False, "message": "", "job": None}

    if request.method == "POST":
        input_data = request.POST.copy()
        print(input_data)

        if "id" in request.GET:
            if request.GET["id"] != "":
                pass
            else:
                # Add
                job = Job.objects.filter(title=input_data["title"])
                if job:
                    data["message"] = "The job already exists"
                else:
                    input_data["experience_year"] = int(
                        input_data["experience_year"])
                    input_data["salary"] = int(input_data["salary"])
                    print(input_data)
                    job = Job(title=input_data["title"],
                              description=input_data["description"],
                              category=input_data["category"],
                              location=input_data["location"],
                              qualification=input_data["qualification"],
                              experience_year=input_data["experience_year"],
                              salary=input_data["salary"],
                              job_type=input_data["job_type"],
                              deadline=input_data["deadline"],
                              skills=input_data["skills"])
                    job.save()
                    data["added"] = True
                pass

    if "id" in request.GET:
        try:
            data["job"] = Job.objects.get(id=request.GET["id"])
        except:
            pass
    return render(request, "job-add.html", data)
Ejemplo n.º 19
0
    def setUp(self):
        company = Company(name='Ishraak Solutions',
                          web_address='www.ishraak.com')
        company.save()
        self.company = company

        job_gender = JobGender(name='Male')
        job_gender.save()
        self.job_gender = job_gender

        experience = Experience(name='Part Time')
        experience.save()
        self.experience = experience

        qualification = Qualification(name='Graduate')
        qualification.save()
        self.qualification = qualification

        job = Job(
            title='Software Engineer',
            experience=1,
            salary_min=5000.00,
            salary_max=10000.00,
            qualification=self.qualification,
            job_gender=self.job_gender,
            application_deadline='2020-03-29',
            description='Test job',
            responsibilities='Web developer',
            education='Computer Science',
            other_benefits='Apple Watch',
            company=self.company,
            latitude=3.00,
            longitude=4.00,
        )
        job.save()
        self.jb = job

        user = User(username='******', password='******')
        user.save()
        self.usr = user
Ejemplo n.º 20
0
    def test_get_unlogged_shifts_by_volunteer_id(self):

        u1 = User.objects.create_user('Yoshi')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v1.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        #sign up
        register(v1.id, s1.id)
        register(v1.id, s2.id)
        register(v1.id, s3.id)

        #test typical case
        shift_list = get_unlogged_shifts_by_volunteer_id(v1.id)
        self.assertIsNotNone(shift_list)
        self.assertNotEqual(shift_list, False)
        self.assertEqual(len(shift_list), 3)
        self.assertIn(s1, shift_list)
        self.assertIn(s2, shift_list)
        self.assertIn(s3, shift_list)
Ejemplo n.º 21
0
 def create(self, validated_data):
     validated_data['job_slug'] = slug_helper(validated_data['name'])
     job = Job(**validated_data)
     job.save()
     return job
Ejemplo n.º 22
0
def write_db(fields, entry):
    j = Job()
    for key in fields:
        if entry[key] is not None and entry[key] != "":
            j.__setattr__(key, entry[key])
    j.save()
Ejemplo n.º 23
0
    def test_clear_shift_hours(self):

        u1 = User.objects.create_user('Yoshi')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v1.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        register(v1.id, s1.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s1.id))

        register(v1.id, s2.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s2.id))

        register(v1.id, s3.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s3.id))

        start_time = datetime.time(hour=9, minute=0)
        end_time = datetime.time(hour=10, minute=0)
        add_shift_hours(v1.id, s1.id, start_time, end_time)

        start_time = datetime.time(hour=10, minute=0)
        end_time = datetime.time(hour=12, minute=0)
        add_shift_hours(v1.id, s2.id, start_time, end_time)

        start_time = datetime.time(hour=5, minute=0)
        end_time = datetime.time(hour=6, minute=0)
        add_shift_hours(v1.id, s3.id, start_time, end_time)

        clear_shift_hours(v1.id, s1.id)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNone(volunteer_shift.start_time)
        self.assertIsNone(volunteer_shift.end_time)

        clear_shift_hours(v1.id, s2.id)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s2.id)
        self.assertIsNone(volunteer_shift.start_time)
        self.assertIsNone(volunteer_shift.end_time)

        clear_shift_hours(v1.id, s3.id)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s3.id)
        self.assertIsNone(volunteer_shift.start_time)
        self.assertIsNone(volunteer_shift.end_time)
Ejemplo n.º 24
0
    def test_cancel_shift_registration(self):

        u1 = User.objects.create_user('Yoshi')
        u2 = User.objects.create_user('John')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v2 = Volunteer(first_name="John",
                       last_name="Doe",
                       address="7 Alpine Street",
                       city="Maplegrove",
                       state="Wyoming",
                       country="USA",
                       phone_number="23454545",
                       email="*****@*****.**",
                       user=u2)

        v1.save()
        v2.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        #test cases when try to cancel when they aren't signed up for a shift
        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v1.id, s1.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v1.id, s1.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v1.id, s2.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v1.id, s3.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v2.id, s1.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v2.id, s2.id)

        with self.assertRaises(ObjectDoesNotExist):
            cancel_shift_registration(v2.id, s3.id)

        #register volunteers to shifts
        register(v1.id, s1.id)
        register(v1.id, s2.id)
        register(v1.id, s3.id)
        register(v2.id, s1.id)
        register(v2.id, s2.id)
        register(v2.id, s3.id)

        #test typical cases
        cancel_shift_registration(v1.id, s1.id)
        cancel_shift_registration(v1.id, s2.id)
        cancel_shift_registration(v1.id, s3.id)
        #cancel_shift_registration(v2.id, s1.id) #why is this throwing ObjectDoesNotExist?
        cancel_shift_registration(v2.id, s2.id)
        cancel_shift_registration(v2.id, s3.id)
Ejemplo n.º 25
0
    def test_edit_shift_hours(self):

        u1 = User.objects.create_user('Yoshi')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v1.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j1.save()

        s1 = Shift(date="2012-10-23",
                   start_time="1:00",
                   end_time="12:00",
                   max_volunteers=1,
                   job=j1)

        s1.save()

        register(v1.id, s1.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s1.id))

        start_time = datetime.time(hour=9, minute=0)
        end_time = datetime.time(hour=10, minute=0)
        add_shift_hours(v1.id, s1.id, start_time, end_time)

        start_time = datetime.time(hour=10, minute=0)
        end_time = datetime.time(hour=11, minute=0)
        edit_shift_hours(v1.id, s1.id, start_time, end_time)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNotNone(volunteer_shift.start_time)
        self.assertIsNotNone(volunteer_shift.end_time)
        self.assertEqual(volunteer_shift.start_time, start_time)
        self.assertEqual(volunteer_shift.end_time, end_time)

        start_time = datetime.time(hour=1, minute=0)
        end_time = datetime.time(hour=4, minute=0)
        edit_shift_hours(v1.id, s1.id, start_time, end_time)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNotNone(volunteer_shift.start_time)
        self.assertIsNotNone(volunteer_shift.end_time)
        self.assertEqual(volunteer_shift.start_time, start_time)
        self.assertEqual(volunteer_shift.end_time, end_time)

        start_time = datetime.time(hour=4, minute=15)
        end_time = datetime.time(hour=12, minute=35)
        edit_shift_hours(v1.id, s1.id, start_time, end_time)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNotNone(volunteer_shift.start_time)
        self.assertIsNotNone(volunteer_shift.end_time)
        self.assertEqual(volunteer_shift.start_time, start_time)
        self.assertEqual(volunteer_shift.end_time, end_time)

        start_time = datetime.time(hour=2, minute=5)
        end_time = datetime.time(hour=4, minute=15)
        edit_shift_hours(v1.id, s1.id, start_time, end_time)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNotNone(volunteer_shift.start_time)
        self.assertIsNotNone(volunteer_shift.end_time)
        self.assertEqual(volunteer_shift.start_time, start_time)
        self.assertEqual(volunteer_shift.end_time, end_time)

        start_time = datetime.time(hour=5, minute=0)
        end_time = datetime.time(hour=5, minute=30)
        edit_shift_hours(v1.id, s1.id, start_time, end_time)
        volunteer_shift = VolunteerShift.objects.get(volunteer_id=v1.id,
                                                     shift_id=s1.id)
        self.assertIsNotNone(volunteer_shift.start_time)
        self.assertIsNotNone(volunteer_shift.end_time)
        self.assertEqual(volunteer_shift.start_time, start_time)
        self.assertEqual(volunteer_shift.end_time, end_time)
Ejemplo n.º 26
0
    def test_get_shift_by_id(self):

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j1.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j1)

        s1.save()
        s2.save()
        s3.save()

        #test typical cases
        self.assertIsNotNone(get_shift_by_id(s1.id))
        self.assertIsNotNone(get_shift_by_id(s2.id))
        self.assertIsNotNone(get_shift_by_id(s3.id))

        self.assertEqual(get_shift_by_id(s1.id), s1)
        self.assertEqual(get_shift_by_id(s2.id), s2)
        self.assertEqual(get_shift_by_id(s3.id), s3)

        #test non-existant cases
        self.assertIsNone(get_shift_by_id(100))
        self.assertIsNone(get_shift_by_id(200))
        self.assertIsNone(get_shift_by_id(300))
        self.assertIsNone(get_shift_by_id(400))

        self.assertNotEqual(get_shift_by_id(100), s1)
        self.assertNotEqual(get_shift_by_id(100), s2)
        self.assertNotEqual(get_shift_by_id(100), s3)
        self.assertNotEqual(get_shift_by_id(200), s1)
        self.assertNotEqual(get_shift_by_id(200), s2)
        self.assertNotEqual(get_shift_by_id(200), s3)
        self.assertNotEqual(get_shift_by_id(300), s1)
        self.assertNotEqual(get_shift_by_id(300), s2)
        self.assertNotEqual(get_shift_by_id(300), s3)
Ejemplo n.º 27
0
    def test_get_volunteer_shift_by_id(self):

        u1 = User.objects.create_user('Yoshi')
        u2 = User.objects.create_user('John')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v2 = Volunteer(first_name="John",
                       last_name="Doe",
                       address="7 Alpine Street",
                       city="Maplegrove",
                       state="Wyoming",
                       country="USA",
                       phone_number="23454545",
                       email="*****@*****.**",
                       user=u2)

        v1.save()
        v2.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        #test cases where signed up
        register(v1.id, s1.id)
        register(v1.id, s2.id)
        register(v1.id, s3.id)

        register(v2.id, s1.id)
        register(v2.id, s2.id)
        register(v2.id, s3.id)

        self.assertEqual(
            get_volunteer_shift_by_id(v1.id, s1.id),
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s1.id))
        self.assertEqual(
            get_volunteer_shift_by_id(v1.id, s2.id),
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s2.id))
        self.assertEqual(
            get_volunteer_shift_by_id(v1.id, s3.id),
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s3.id))

        #self.assertEqual(get_volunteer_shift_by_id(v2.id, s1.id), VolunteerShift.objects.get(volunteer_id=v2.id, shift_id=s1.id)) #why does this throw DoesNotExist?
        self.assertEqual(
            get_volunteer_shift_by_id(v2.id, s2.id),
            VolunteerShift.objects.get(volunteer_id=v2.id, shift_id=s2.id))
        self.assertEqual(
            get_volunteer_shift_by_id(v2.id, s3.id),
            VolunteerShift.objects.get(volunteer_id=v2.id, shift_id=s3.id))
Ejemplo n.º 28
0
    def test_is_signed_up(self):

        u1 = User.objects.create_user('Yoshi')
        u2 = User.objects.create_user('John')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v2 = Volunteer(first_name="John",
                       last_name="Doe",
                       address="7 Alpine Street",
                       city="Maplegrove",
                       state="Wyoming",
                       country="USA",
                       phone_number="23454545",
                       email="*****@*****.**",
                       user=u2)

        v1.save()
        v2.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        #test cases where not signed up yet
        self.assertFalse(is_signed_up(v1.id, s1.id))
        self.assertFalse(is_signed_up(v1.id, s2.id))
        self.assertFalse(is_signed_up(v1.id, s3.id))

        #test cases where signed up
        register(v1.id, s1.id)
        register(v1.id, s2.id)
        register(v1.id, s3.id)

        self.assertTrue(is_signed_up(v1.id, s1.id))
        self.assertTrue(is_signed_up(v1.id, s2.id))
        self.assertTrue(is_signed_up(v1.id, s3.id))

        #test case where more than one volunteer signs up for the same shift
        self.assertFalse(is_signed_up(v2.id, s1.id))
        self.assertFalse(is_signed_up(v2.id, s2.id))
        self.assertFalse(is_signed_up(v2.id, s3.id))

        register(v2.id, s2.id)
        register(v2.id, s3.id)

        self.assertFalse(is_signed_up(v2.id, s1.id))
        self.assertTrue(is_signed_up(v2.id, s2.id))
        self.assertTrue(is_signed_up(v2.id, s3.id))
Ejemplo n.º 29
0
    def test_register(self):

        RESULT_IS_VALID = "IS_VALID"
        ERROR_CODE_ALREADY_SIGNED_UP = "ERROR_CODE_ALREADY_SIGNED_UP"
        ERROR_CODE_NO_SLOTS_REMAINING = "ERROR_CODE_NO_SLOTS_REMAINING"

        u1 = User.objects.create_user('Yoshi')
        u2 = User.objects.create_user('John')

        v1 = Volunteer(first_name="Yoshi",
                       last_name="Turtle",
                       address="Mario Land",
                       city="Nintendo Land",
                       state="Nintendo State",
                       country="Nintendo Nation",
                       phone_number="2374983247",
                       email="*****@*****.**",
                       user=u1)

        v2 = Volunteer(first_name="John",
                       last_name="Doe",
                       address="7 Alpine Street",
                       city="Maplegrove",
                       state="Wyoming",
                       country="USA",
                       phone_number="23454545",
                       email="*****@*****.**",
                       user=u2)

        v1.save()
        v2.save()

        e1 = Event(name="Open Source Event",
                   start_date="2012-10-22",
                   end_date="2012-10-23")

        e1.save()

        j1 = Job(name="Software Developer",
                 start_date="2012-10-22",
                 end_date="2012-10-23",
                 description="A software job",
                 event=e1)

        j2 = Job(name="Systems Administrator",
                 start_date="2012-9-1",
                 end_date="2012-10-26",
                 description="A systems administrator job",
                 event=e1)

        j1.save()
        j2.save()

        s1 = Shift(date="2012-10-23",
                   start_time="9:00",
                   end_time="3:00",
                   max_volunteers=1,
                   job=j1)

        s2 = Shift(date="2012-10-23",
                   start_time="10:00",
                   end_time="4:00",
                   max_volunteers=2,
                   job=j1)

        s3 = Shift(date="2012-10-23",
                   start_time="12:00",
                   end_time="6:00",
                   max_volunteers=4,
                   job=j2)

        s1.save()
        s2.save()
        s3.save()

        #test typical cases
        register(v1.id, s1.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s1.id))

        register(v1.id, s2.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s2.id))

        register(v1.id, s3.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v1.id, shift_id=s3.id))

        #test cases where volunteer tries to sign up for a shift they are already signed up for
        self.assertEqual(register(v1.id, s1.id), ERROR_CODE_ALREADY_SIGNED_UP)
        self.assertEqual(register(v1.id, s2.id), ERROR_CODE_ALREADY_SIGNED_UP)
        self.assertEqual(register(v1.id, s3.id), ERROR_CODE_ALREADY_SIGNED_UP)

        #test case where more than one volunteer signs up for the same shift
        #v2 can't sign up for s1 because there are no slots remaining
        self.assertEqual(register(v2.id, s1.id), ERROR_CODE_NO_SLOTS_REMAINING)

        register(v2.id, s2.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v2.id, shift_id=s2.id))

        register(v2.id, s3.id)
        self.assertIsNotNone(
            VolunteerShift.objects.get(volunteer_id=v2.id, shift_id=s3.id))

        #test cases where a volunteer tries to sign up for a shift they are already signed up for
        self.assertEqual(register(v2.id, s2.id), ERROR_CODE_ALREADY_SIGNED_UP)
        self.assertEqual(register(v2.id, s3.id), ERROR_CODE_ALREADY_SIGNED_UP)