Ejemplo n.º 1
0
 def prepare_data(self):
     """Create some real data (real Event, Task, Person, or action)."""
     # totally fake Task, Role and Event data
     Tag.objects.bulk_create(
         [
             Tag(name="SWC"),
             Tag(name="DC"),
             Tag(name="LC"),
         ]
     )
     self.event = Event.objects.create(
         slug="test-event",
         host=Organization.objects.first(),
         start=date.today() + timedelta(days=7),
         end=date.today() + timedelta(days=8),
         country="GB",
         venue="Ministry of Magic",
         address="Underground",
         latitude=20.0,
         longitude=20.0,
         url="https://test-event.example.com",
     )
     self.event.tags.set(Tag.objects.filter(name__in=["SWC", "DC", "LC"]))
     self.person = Person.objects.create(
         personal="Harry", family="Potter", email="*****@*****.**"
     )
     self.role = Role.objects.create(name="instructor")
     self.task = Task.objects.create(
         event=self.event, person=self.person, role=self.role
     )
Ejemplo n.º 2
0
    def setUp(self):
        super().setUp()
        self._setUpRoles()
        self._setUpUsersAndLogin()
        # we're missing some tags
        Tag.objects.bulk_create(
            [
                Tag(name="automated-email", priority=0),
                Tag(name="SWC", priority=10),
                Tag(name="DC", priority=20),
                Tag(name="LC", priority=30),
                Tag(name="TTT", priority=40),
            ]
        )

        self.wr1 = WorkshopRequest.objects.create(
            state="p",
            personal="Harry",
            family="Potter",
            email="*****@*****.**",
            institution_other_name="Hogwarts",
            location="Scotland",
            country="GB",
            preferred_dates=None,
            other_preferred_dates="soon",
            language=Language.objects.get(name="English"),
            number_attendees="10-40",
            audience_description="Students of Hogwarts",
            administrative_fee="nonprofit",
            scholarship_circumstances="",
            travel_expences_management="booked",
            travel_expences_management_other="",
            institution_restrictions="no_restrictions",
            institution_restrictions_other="",
            carpentries_info_source_other="",
            user_notes="",
        )

        template1 = EmailTemplate.objects.create(
            slug="sample-template1",
            subject="Welcome to {{ site.name }}",
            to_header="*****@*****.**",
            from_header="*****@*****.**",
            cc_header="*****@*****.**",
            bcc_header="*****@*****.**",
            reply_to_header="{{ reply_to }}",
            body_template="Sample text.",
        )
        self.trigger1 = Trigger.objects.create(
            action="week-after-workshop-completion", template=template1,
        )

        self.url = reverse("workshoprequest_accept_event", args=[self.wr1.pk])

        # save scheduler and connection data
        self._saved_scheduler = extrequests.views.scheduler
        self._saved_redis_connection = extrequests.views.redis_connection
        # overwrite them
        extrequests.views.scheduler = self.scheduler
        extrequests.views.redis_connection = self.connection
Ejemplo n.º 3
0
    def setUp(self):
        super().setUp()

        # prepare some necessary objects
        self.template = EmailTemplate.objects.create()
        self.trigger = Trigger.objects.create(action='test-action',
                                              template=self.template)

        # totally fake Task, Role and Event data
        Tag.objects.bulk_create([
            Tag(name='SWC'),
            Tag(name='DC'),
            Tag(name='LC'),
        ])
        self.event = Event.objects.create(
            slug='test-event',
            host=Organization.objects.first(),
            start=date.today() + timedelta(days=7),
            end=date.today() + timedelta(days=8),
            country='GB',
            venue='Ministry of Magic',
            address='Underground',
            latitude=20.0,
            longitude=20.0,
            url='https://test-event.example.com',
        )
        self.event.tags.set(Tag.objects.filter(name__in=['SWC', 'DC', 'LC']))
        self.person = Person.objects.create(personal='Harry',
                                            family='Potter',
                                            email='*****@*****.**')
        self.role = Role.objects.create(name='instructor')
        self.task = Task.objects.create(event=self.event,
                                        person=self.person,
                                        role=self.role)
Ejemplo n.º 4
0
    def setUp(self):
        super().setUp()
        Role.objects.create(name="host")

        Tag.objects.bulk_create(
            [
                Tag(name="SWC"),
                Tag(name="DC"),
                Tag(name="LC"),
                Tag(name="automated-email"),
            ]
        )
        Organization.objects.bulk_create(
            [
                Organization(
                    domain="librarycarpentry.org", fullname="Library Carpentry"
                ),
                Organization(domain="carpentries.org", fullname="Instructor Training"),
            ]
        )
        test_event_1 = Event.objects.create(
            slug="test-event",
            host=Organization.objects.first(),
            administrator=Organization.objects.get(domain="librarycarpentry.org"),
            start=date.today() + timedelta(days=7),
            end=date.today() + timedelta(days=8),
            country="GB",
            venue="Ministry of Magic",
            address="Underground",
            latitude=20.0,
            longitude=20.0,
            url="https://test-event.example.com",
        )
        test_event_1.tags.set(
            Tag.objects.filter(name__in=["SWC", "DC", "LC", "automated-email"])
        )
        template = EmailTemplate.objects.create(
            slug="sample-template",
            subject="Welcome!",
            to_header="",
            from_header="*****@*****.**",
            cc_header="*****@*****.**",
            bcc_header="*****@*****.**",
            reply_to_header="",
            body_template="# Welcome",
        )
        Trigger.objects.create(action="new-instructor", template=template)

        # save scheduler and connection data
        self._saved_scheduler = workshops.views.scheduler
        self._saved_redis_connection = workshops.views.redis_connection
        # overwrite them
        workshops.views.scheduler = self.scheduler
        workshops.views.redis_connection = self.connection

        self.csv = """personal,family,email,event,role
Ejemplo n.º 5
0
 def _setUpTags(self):
     """Set up tags (the same as in production database, minus some added
     via migrations)."""
     Tag.objects.bulk_create([
         Tag(name="TTT", details=""),
         Tag(name="WiSE", details=""),
         Tag(name="LC", details=""),
         Tag(name="DC", details=""),
         Tag(name="SWC", details=""),
     ])
Ejemplo n.º 6
0
 def _setUpTags(self):
     """Set up tags (the same as in production database, minus some added
     via migrations)."""
     Tag.objects.bulk_create([
         Tag(name='TTT', details=''),
         Tag(name='WiSE', details=''),
         Tag(name='LC', details=''),
         Tag(name='DC', details=''),
         Tag(name='SWC', details=''),
     ])
Ejemplo n.º 7
0
    def setUp(self):
        super().setUp()
        Role.objects.create(name='host')

        Tag.objects.bulk_create([
            Tag(name='SWC'),
            Tag(name='DC'),
            Tag(name='LC'),
            Tag(name='automated-email'),
        ])
        Organization.objects.bulk_create([
            Organization(domain='librarycarpentry.org',
                         fullname='Library Carpentry'),
            Organization(domain='carpentries.org',
                         fullname='Instructor Training'),
        ])
        test_event_1 = Event.objects.create(
            slug='test-event',
            host=Organization.objects.first(),
            administrator=Organization.objects.get(
                domain='librarycarpentry.org'),
            start=date.today() + timedelta(days=7),
            end=date.today() + timedelta(days=8),
            country='GB',
            venue='Ministry of Magic',
            address='Underground',
            latitude=20.0,
            longitude=20.0,
            url='https://test-event.example.com',
        )
        test_event_1.tags.set(
            Tag.objects.filter(
                name__in=['SWC', 'DC', 'LC', 'automated-email']))
        template = EmailTemplate.objects.create(
            slug='sample-template',
            subject='Welcome!',
            to_header='',
            from_header='*****@*****.**',
            cc_header='*****@*****.**',
            bcc_header='*****@*****.**',
            reply_to_header='',
            body_template='# Welcome',
        )
        trigger = Trigger.objects.create(action='new-instructor',
                                         template=template)

        # save scheduler and connection data
        self._saved_scheduler = workshops.views.scheduler
        self._saved_redis_connection = workshops.views.redis_connection
        # overwrite them
        workshops.views.scheduler = self.scheduler
        workshops.views.redis_connection = self.connection

        self.csv = """personal,family,email,event,role
Ejemplo n.º 8
0
    def setUp(self):
        # we're missing some tags
        Tag.objects.bulk_create([
            Tag(name="automated-email", priority=0),
            Tag(name="SWC", priority=10),
            Tag(name="DC", priority=20),
            Tag(name="LC", priority=30),
            Tag(name="TTT", priority=40),
        ])
        # by default there's only self-organized organization
        Organization.objects.bulk_create([
            Organization(domain="carpentries.org",
                         fullname="Instructor Training")
        ])

        self.host = Role.objects.create(name="host")
        self.instructor = Role.objects.create(name="instructor")
        self.supporting_instructor = Role.objects.create(
            name="supporting-instructor")

        self.person1 = Person.objects.create(
            personal="Harry",
            family="Potter",
            email="*****@*****.**",
            username="******",
        )
        self.person2 = Person.objects.create(
            personal="Ron",
            family="Weasley",
            email="*****@*****.**",
            username="******",
        )
        self.person3 = Person.objects.create(
            personal="Hermione",
            family="Granger",
            email="*****@*****.**",
            username="******",
        )
        self.person4 = Person.objects.create(
            personal="Peter",
            family="Parker",
            email="*****@*****.**",
            username="******",
        )
        self.person5 = Person.objects.create(
            personal="Tony",
            family="Stark",
            email="*****@*****.**",
            username="******",
        )
Ejemplo n.º 9
0
 def setUp(self):
     # we're missing some tags
     Tag.objects.bulk_create([
         Tag(name="automated-email", priority=0),
         Tag(name="SWC", priority=10),
         Tag(name="DC", priority=20),
         Tag(name="LC", priority=30),
         Tag(name="TTT", priority=40),
     ])
     # by default there's only self-organized organization, but it can't be
     # used in SelfOrganisedRequestAction
     Organization.objects.bulk_create([
         Organization(domain="carpentries.org",
                      fullname="Instructor Training"),
         Organization(domain="librarycarpentry.org",
                      fullname="Library Carpentry"),
     ])
Ejemplo n.º 10
0
 def setUp(self):
     Tag.objects.bulk_create([
         Tag(name="SWC"),
         Tag(name="DC"),
         Tag(name="LC"),
         Tag(name="automated-email"),
     ])
     Organization.objects.bulk_create([
         Organization(domain="librarycarpentry.org",
                      fullname="Library Carpentry"),
         Organization(domain="datacarpentry.org",
                      fullname="Data Carpentry"),
         Organization(domain="software-carpentry.org",
                      fullname="Software Carpentry"),
         Organization(domain="carpentries.org",
                      fullname="Instructor Training"),
     ])
Ejemplo n.º 11
0
 def setUp(self):
     # we're missing some tags
     Tag.objects.bulk_create([
         Tag(name="SWC"),
         Tag(name="DC"),
         Tag(name="LC"),
         Tag(name="TTT"),
         Tag(name="automated-email"),
     ])
     # by default there's only self-organized organization, but it can't be
     # used in AskForWebsiteAction
     Organization.objects.bulk_create([
         Organization(domain="carpentries.org",
                      fullname="Instructor Training"),
         Organization(domain="librarycarpentry.org",
                      fullname="Library Carpentry"),
     ])
Ejemplo n.º 12
0
    def setUp(self):
        # we're missing some tags
        Tag.objects.bulk_create([
            Tag(name="SWC"),
            Tag(name="DC"),
            Tag(name="LC"),
            Tag(name="TTT"),
            Tag(name="automated-email"),
        ])
        # by default there's only self-organized organization, but it can't be
        # used in RecruitHelpersAction
        Organization.objects.bulk_create([
            Organization(domain="carpentries.org",
                         fullname="Instructor Training"),
            Organization(domain="librarycarpentry.org",
                         fullname="Library Carpentry"),
        ])

        self.host_role = Role.objects.create(name="host")
        self.instructor_role = Role.objects.create(name="instructor")
        self.helper_role = Role.objects.create(name="helper")

        self.person1 = Person.objects.create(
            personal="Harry",
            family="Potter",
            email="*****@*****.**",
            username="******",
        )
        self.person2 = Person.objects.create(
            personal="Ron",
            family="Weasley",
            email="*****@*****.**",
            username="******",
        )
        self.person3 = Person.objects.create(
            personal="Hermione",
            family="Granger",
            email="*****@*****.**",
            username="******",
        )
Ejemplo n.º 13
0
    def setUp(self):
        # we're missing some tags
        Tag.objects.bulk_create([
            Tag(name="automated-email", priority=0),
            Tag(name="SWC", priority=10),
            Tag(name="DC", priority=20),
            Tag(name="LC", priority=30),
            Tag(name="TTT", priority=40),
        ])

        self.instructor_role = Role.objects.create(name="instructor")
        self.person1 = Person.objects.create(
            personal="Harry",
            family="Potter",
            email="*****@*****.**",
            username="******",
        )
        self.person2 = Person.objects.create(
            personal="Ron",
            family="Weasley",
            email="*****@*****.**",
            username="******",
        )
    def setUp(self):
        super().setUp()
        self._setUpRoles()
        self._setUpUsersAndLogin()
        # we're missing some tags
        Tag.objects.bulk_create([
            Tag(name="automated-email", priority=0),
            Tag(name="SWC", priority=10),
            Tag(name="DC", priority=20),
            Tag(name="LC", priority=30),
            Tag(name="TTT", priority=40),
        ])

        self.sos = SelfOrganisedSubmission.objects.create(
            state="p",
            personal="Harry",
            family="Potter",
            email="*****@*****.**",
            institution_other_name="Hogwarts",
            workshop_url="",
            workshop_format="",
            workshop_format_other="",
            workshop_types_other_explain="",
            language=Language.objects.get(name="English"),
            additional_contact="*****@*****.**",
        )
        self.sos.workshop_types.set(Curriculum.objects.filter(carpentry="LC"))

        template1 = EmailTemplate.objects.create(
            slug="sample-template1",
            subject="Welcome to {{ site.name }}",
            to_header="*****@*****.**",
            from_header="*****@*****.**",
            cc_header="*****@*****.**",
            bcc_header="*****@*****.**",
            reply_to_header="{{ reply_to }}",
            body_template="Sample text.",
        )
        template2 = EmailTemplate.objects.create(
            slug="sample-template2",
            subject="Welcome to {{ site.name }}",
            to_header="*****@*****.**",
            from_header="*****@*****.**",
            cc_header="*****@*****.**",
            bcc_header="*****@*****.**",
            reply_to_header="{{ reply_to }}",
            body_template="Sample text.",
        )
        self.trigger1 = Trigger.objects.create(
            action="self-organised-request-form",
            template=template1,
        )
        self.trigger2 = Trigger.objects.create(
            action="week-after-workshop-completion",
            template=template2,
        )

        self.url = reverse("selforganisedsubmission_accept_event",
                           args=[self.sos.pk])

        # save scheduler and connection data
        self._saved_scheduler = extrequests.views.scheduler
        self._saved_redis_connection = extrequests.views.redis_connection
        # overwrite them
        extrequests.views.scheduler = self.scheduler
        extrequests.views.redis_connection = self.connection
Ejemplo n.º 15
0
    def setUp(self):
        super().setUp()

        # get instructor badges
        swc_instructor, _ = Badge.objects.get_or_create(name='swc-instructor')
        dc_instructor, _ = Badge.objects.get_or_create(name='dc-instructor')
        lc_instructor, _ = Badge.objects.get_or_create(name='lc-instructor')

        # prepare tags
        Tag.objects.bulk_create([
            Tag(name='TTT', details=''),
            Tag(name='LC', details=''),
            Tag(name='DC', details=''),
            Tag(name='SWC', details=''),
        ])

        # prepare an instructor
        instructor = Person.objects.create(
            username='******',
            personal='Harry',
            family='Potter',
            email='*****@*****.**',
            country='GB',
        )

        # prepare instructor role
        instructor_role, _ = Role.objects.get_or_create(name='instructor')

        # create an organization host
        host = Organization.objects.create(domain='host.edu',
                                           fullname='Organization EDU')

        # set up events
        event1 = Event.objects.create(slug='event1', host=host)
        event2 = Event.objects.create(slug='event2', host=host)
        event2.tags.set(
            Tag.objects.filter(name__in=['SWC', 'DC', 'LC', 'TTT']))

        Task.objects.create(event=event1,
                            person=instructor,
                            role=instructor_role)
        Task.objects.create(event=event2,
                            person=instructor,
                            role=instructor_role)

        # Award a SWC, DC and LC badges
        Award.objects.create(person=instructor, badge=swc_instructor)
        Award.objects.create(person=instructor, badge=dc_instructor)
        Award.objects.create(person=instructor, badge=lc_instructor)

        # make sure we *do not* get twice the number expected
        self.expecting = [
            {
                'person':
                'http://testserver/api/v1/persons/{}/?format=json'.format(
                    instructor.pk, ),
                'name':
                'Harry Potter',
                'country':
                'GB',
                'num_taught_SWC':
                1,
                'num_taught_DC':
                1,
                'num_taught_LC':
                1,
                'num_taught_TTT':
                1,
                'num_taught_total':
                2,
            },
        ]