def init_projects(self): """ Set up some basic models needed for project creation. """ phase_data = [{'id': 1, 'name': 'Plan - New', 'viewable': False}, {'id': 2, 'name': 'Plan - Submitted', 'viewable': False}, {'id': 3, 'name': 'Plan - Needs Work', 'viewable': False}, {'id': 4, 'name': 'Plan - Rejected', 'viewable': False}, {'id': 6, 'name': 'Plan - Accepted', 'viewable': True}, {'id': 5, 'name': 'Campaign', 'viewable': True}, {'id': 7, 'name': 'Stopped', 'viewable': False}, {'id': 8, 'name': 'Done - Complete', 'viewable': True}, {'id': 9, 'name': 'Done - Incomplete', 'viewable': True}] theme_data = [{'id': 1, 'name': 'Education'}, {'id': 2, 'name': 'Environment'}] language_data = [{'id': 1, 'code': 'en', 'language_name': 'English', 'native_name': 'English'}, {'id': 2, 'code': 'nl', 'language_name': 'Dutch', 'native_name': 'Nederlands'}] partner_data = [{'id': 1, 'slug': 'cheetah', 'name': 'The Cheetah Campaign'}, {'id': 2, 'slug': 'macro_micro', 'name': 'Macro Micro'}] for partner in partner_data: PartnerFactory.create(**partner) for phase in phase_data: ProjectPhaseFactory.create(**phase) for theme in theme_data: ProjectThemeFactory.create(**theme) for language in language_data: LanguageFactory.create(**language)
def test_sort_matching_theme(self): theme = ProjectThemeFactory.create() self.owner.favourite_themes.add(theme) self.owner.save() initiative = InitiativeFactory.create(theme=theme) first = EventFactory.create(status='open', capacity=1) ParticipantFactory.create(activity=first) second = EventFactory.create(status='open', initiative=initiative, capacity=1) ParticipantFactory.create(activity=second) third = EventFactory.create(status='open') ParticipantFactory.create(activity=third) fourth = EventFactory.create(status='open', initiative=initiative) ParticipantFactory.create(activity=fourth) response = self.client.get(self.url + '?sort=popularity', user=self.owner) data = json.loads(response.content) self.assertEqual(data['meta']['pagination']['count'], 4) self.assertEqual(data['data'][0]['id'], str(fourth.pk)) self.assertEqual(data['data'][1]['id'], str(third.pk)) self.assertEqual(data['data'][2]['id'], str(second.pk)) self.assertEqual(data['data'][3]['id'], str(first.pk))
def test_theme_translated(self, queue_mock): theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') project = ProjectFactory.create(theme=theme) user = BlueBottleUserFactory.create() TaskFactory.create(author=user, project=project) args, kwargs = queue_mock.call_args self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
def test_theme_translated(self, queue_mock): theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') project = ProjectFactory.create(theme=theme) task = TaskFactory.create(project=project) TaskMemberFactory.create(task=task) args, kwargs = queue_mock.call_args self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
def test_theme_translated(self, queue_mock): theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') project = ProjectFactory.create(theme=theme) task = TaskFactory.create(project=project) task_member = TaskMemberFactory.create(task=task) args, kwargs = queue_mock.call_args self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
def test_theme_translated(self, queue_mock): theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') project = ProjectFactory.create(theme=theme) user = BlueBottleUserFactory.create() task = TaskFactory.create(author=user, project=project) args, kwargs = queue_mock.call_args self.assertEqual(kwargs['tags']['theme'], 'Cleaning the park')
def setUp(self): self.user_a = self.create_user(email='*****@*****.**', first_name='aname ', last_name='alast') self.user_b = self.create_user(email='*****@*****.**', first_name='bname ', last_name='blast') self.user_c = self.create_user(email='*****@*****.**', first_name='cname ', last_name='clast') #self.project = self.create_project(owner=self.user_a) self.theme_1 = ProjectThemeFactory.create() self.phase_1 = ProjectPhaseFactory.create() self.project_1 = ProjectFactory.create( owner=self.user_a, status=self.phase_1, theme=self.theme_1) self.task_1 = TaskFactory(author=self.user_a, project=self.project_1)
def setUp(self): super(TestProjectStatusUpdateStatGeneration, self).setUp() self.tenant = self.client.tenant self.init_projects() with patch('bluebottle.analytics.utils.queue_analytics_record'): self.theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') self.country = CountryFactory.create() self.status = ProjectPhaseFactory.create(slug='realised') self.project = ProjectFactory.create(theme=self.theme, status=self.status, country=self.country) self.count = ProjectPhase.objects.all().count()
def setUp(self): super(TestProjectAnalytics, self).setUp() self.init_projects() self.theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') self.country = CountryFactory.create(name='Beachville') self.status = ProjectPhase.objects.get(slug='campaign') self.expected_tags = { 'status': self.status.name, 'theme_slug': u'cleaning-the-beach', 'status_slug': self.status.slug, 'country': u'Beachville', 'theme': u'Cleaning the beach', 'location': '', 'location_group': '', 'type': 'project', 'sub_type': u'funding', 'tenant': u'test', }
def setUp(self): super(TestProjectAnalytics, self).setUp() self.init_projects() self.theme = ProjectThemeFactory.create(name='Cleaning the beach', slug='cleaning-the-beach') self.country = CountryFactory.create() self.status = ProjectPhase.objects.get(slug='campaign') self.expected_tags = { 'status': self.status.name, 'theme_slug': u'cleaning-the-beach', 'status_slug': self.status.slug, 'country': self.country.name, 'theme': u'Cleaning the beach', 'location': '', 'location_group': '', 'type': 'project', 'sub_type': 'funding', 'tenant': u'test', }
def test_sort_matching_combined(self): theme = ProjectThemeFactory.create() self.owner.favourite_themes.add(theme) skill = SkillFactory.create() self.owner.skills.add(skill) self.owner.location = LocationFactory.create(position='10.0, 20.0') self.owner.save() initiative = InitiativeFactory.create(theme=theme) first = EventFactory.create(status='open', initiative=initiative, is_online=False) second = AssignmentFactory.create( status='open', location=GeolocationFactory.create(position=Point(21.0, 9.0)), initiative=initiative, is_online=False) third = AssignmentFactory.create( status='open', location=GeolocationFactory.create(position=Point(21.0, 9.0)), initiative=initiative, expertise=skill, is_online=False) response = self.client.get(self.url + '?sort=popularity', user=self.owner) data = json.loads(response.content) self.assertEqual(data['meta']['pagination']['count'], 3) self.assertEqual(data['data'][0]['id'], str(third.pk)) self.assertEqual(data['data'][1]['id'], str(second.pk)) self.assertEqual(data['data'][2]['id'], str(first.pk))
def setUp(self): super(InitiativeListAPITestCase, self).setUp() self.theme = ProjectThemeFactory.create() self.url = reverse('initiative-list')
def test_detail_disabled(self): theme = ProjectThemeFactory.create(disabled=True) url = reverse('initiative-theme', args=(theme.id, )) response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_list_disabled(self): ProjectThemeFactory.create(disabled=True) response = self.client.get(self.list_url) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.json()['data']), 5)
def setUp(self): super(TestProjectTheme, self).setUp() self.init_projects() self.theme = ProjectThemeFactory.create() self.project = ProjectFactory.create(theme=self.theme)