Ejemplo n.º 1
0
    def test_programme_roles(self):
        """
        If someone has multiple programmes, they should get the job title of the highest-priority (lowest
        priority number) Role.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        role = programme_role.role
        personnel_class = role.personnel_class
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.job_title == role.title

        programme2, unused = Programme.get_or_create_dummy(
            title='Cosplay-deitti')
        role2, unused = Role.get_or_create_dummy(
            personnel_class=personnel_class,
            priority=role.priority - 10,
            title='More Importanter Programme Person',
        )
        programme_Role2, unused = ProgrammeRole.get_or_create_dummy(
            programme=programme2, role=role2)

        programme2.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.job_title == role2.title
Ejemplo n.º 2
0
    def test_programme_roles(self):
        """
        If someone has multiple programmes, they should get the job title of the highest-priority (lowest
        priority number) Role.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        role = programme_role.role
        personnel_class = role.personnel_class
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.job_title == role.title

        programme2, unused = Programme.get_or_create_dummy(title='Cosplay-deitti')
        role2, unused = Role.get_or_create_dummy(
            personnel_class=personnel_class,
            priority=role.priority - 10,
            title='More Importanter Programme Person',
        )
        programme_Role2, unused = ProgrammeRole.get_or_create_dummy(programme=programme2, role=role2)

        programme2.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.job_title == role2.title
Ejemplo n.º 3
0
    def test_condb_137_programme_to_labour(self):
        """
        Most conventions assign a higher priority (lower priority number) to volunteer workers than
        speakers and other programme hosts. This is to say, if the same person is both volunteering and
        speaking, they are supposed to get a worker badge, not a speaker badge. This is, of course,
        configurable on a per-event basis, but this is how it is in our test data.

        We model a case in which the same person is first accepted as a speaker and thus gets a speaker
        badge, and is then accepted as a volunteer worker, "promoting" them to worker status and earning
        them a worker badge.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class

        signup, created = Signup.get_or_create_dummy(accepted=True)

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == signup.personnel_classes.get()

        # Now cancel the worker signup and make sure they go back to having a programme badge
        signup.personnel_classes = []
        signup.job_categories_accepted = []
        signup.state = 'cancelled'
        signup.save()
        signup.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class
Ejemplo n.º 4
0
    def test_condb_137_programme_to_labour(self):
        """
        Most conventions assign a higher priority (lower priority number) to volunteer workers than
        speakers and other programme hosts. This is to say, if the same person is both volunteering and
        speaking, they are supposed to get a worker badge, not a speaker badge. This is, of course,
        configurable on a per-event basis, but this is how it is in our test data.

        We model a case in which the same person is first accepted as a speaker and thus gets a speaker
        badge, and is then accepted as a volunteer worker, "promoting" them to worker status and earning
        them a worker badge.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class

        signup, created = Signup.get_or_create_dummy(accepted=True)

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == signup.personnel_classes.get()

        # Now cancel the worker signup and make sure they go back to having a programme badge
        signup.personnel_classes = []
        signup.job_categories_accepted = []
        signup.state = 'cancelled'
        signup.save()
        signup.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class
Ejemplo n.º 5
0
    def test_condb_261(self):
        """
        If someone changes their name while they have outstanding badges, those badges should get revoked
        and re-created.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.first_name == self.person.first_name

        self.person.first_name = 'Matilda'
        self.person.save()
        self.person.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.first_name == self.person.first_name
Ejemplo n.º 6
0
    def test_condb_428_programme(self):
        """
        If someone is first accepted as a speaker, but then cancels their programme or they are fired,
        their badge should get revoked.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class

        programme.state = 'rejected'
        programme.save()
        programme.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge is None
Ejemplo n.º 7
0
    def test_condb_261(self):
        """
        If someone changes their name while they have outstanding badges, those badges should get revoked
        and re-created.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.first_name == self.person.first_name

        self.person.first_name = u'Matilda'
        self.person.save()
        self.person.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.first_name == self.person.first_name
Ejemplo n.º 8
0
    def test_condb_428_programme(self):
        """
        If someone is first accepted as a speaker, but then cancels their programme or they are fired,
        their badge should get revoked.
        """
        programme_role, unused = ProgrammeRole.get_or_create_dummy()
        programme = programme_role.programme

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge.personnel_class == programme_role.role.personnel_class

        programme.state = 'rejected'
        programme.save()
        programme.apply_state()

        badge, created = Badge.ensure(person=self.person, event=self.event)
        assert not created
        assert badge is None
def create_new_programme(context):
    context.programme, unused = Programme.get_or_create_dummy()
    ProgrammeRole.get_or_create_dummy()
Ejemplo n.º 10
0
def create_another_programme(context):
    context.another_programme, unused = Programme.get_or_create_dummy(title=u'Another dummy programme')
    ProgrammeRole.get_or_create_dummy(programme=context.another_programme)