def create_articles(quantity=20, language='en'): activate(language) app_config = NewsBlogConfig.objects.first() m = Mockup() for x in range(quantity): m.create_article( is_published=True, app_config=app_config, )
def create_cms_pages(): mockup = Mockup() site_id = Site.objects.first().id mockup.get_or_create_page( reverse_id=u'Noticias', template=u'base.jade', site_id=site_id, )
def create_admin_user(): m = Mockup() user = m.get_or_create_user(email='*****@*****.**')[0] user.set_password('admin') user.is_staff = True user.is_active = True user.is_superuser = True user.status = user.STATUS_ACCEPTED user.save() return user
def create_ministry(datetime=None, quantity=10): m = Mockup() government_structure = get_current_government_structure() for x in range(quantity): minister = m.create_public_servant( government_structure=government_structure, ) m.create_ministry( minister=minister, government_structure=government_structure, )
def setUp(self): # cons self.total_users = randint(80, 100) self.page = 5 self.newsletter = Newsletter.get_newsletter() # mockup self.mockup = Mockup() # create users for i in range(self.total_users): self.mockup.create_user(status=UserEnum.STATUS_ACCEPTED) self.users = User.objects.all()
def create_notifications(user=None): m = Mockup() if user is None: user = User.objects.order_by('-last_activity').first() event = m.create_event(start_date=timezone.now()) for kind, name in NotificationKinds.choices: m.create_notification( user=user, kind=kind, event=event, comment=m.create_comment(event=event), from_user=m.create_user(), )
def create_sociocultural_department(): m = Mockup() government_structure = get_current_government_structure() m.create_sociocultural_department( government_structure=government_structure)
def create_presidency(): m = Mockup() government_structure = get_current_government_structure() m.create_presidency(government_structure=government_structure)
def get_current_government_structure(): mockup = Mockup() return mockup.get_or_create_government_structure( current_government=True )[0]
def load_data_from_digital_gob_api(ministry_with_minister=False): # get or create current government structure m = Mockup() government_structure = get_current_government_structure() # Get ministries from public json headers = { 'User-Agent': 'Mozilla/5.0', } url = 'https://apis.digital.gob.cl/misc/instituciones/_search?size=1000' ministries = requests.get(url, headers=headers) ministries = ministries.json()['hits']['hits'] PublicService.objects.filter(name=None).delete() for ministry in ministries: source = ministry['_source'] name = source['nombre'] # see if name starts with "ministerio" if name.lower().startswith('ministerio'): description = source.get('mision', '') defaults = {'description': description} if ministry_with_minister: # create a minister dummy by ministry minister = m.create_public_servant( government_structure=government_structure, ) defaults['minister'] = minister # get or create ministry by government structure and name ministry_obj = Ministry.objects.get_or_create( government_structure=government_structure, name=name, defaults=defaults, )[0] if not ministry_obj.name_es: ministry_obj.name_es = name if not ministry_obj.name_en: ministry_obj.name_en = name ministry_obj.save() ''' If rest has "servicios dependientes" get or create PublicService ''' for service in source.get('servicios_dependientes'): name = service.get('nombre') url = service.get('url', None) if not url: continue public_service = PublicService.objects.get_or_create( name=name.strip(), ministry=ministry_obj, defaults={ 'name_es': name.strip(), 'url': url, } )[0] if not public_service.name_en: public_service.name_en = name public_service.save()
class NewsletterTest(TestCase): def setUp(self): # cons self.total_users = randint(80, 100) self.page = 5 self.newsletter = Newsletter.get_newsletter() # mockup self.mockup = Mockup() # create users for i in range(self.total_users): self.mockup.create_user(status=UserEnum.STATUS_ACCEPTED) self.users = User.objects.all() def test_send_newsletter(self): """ Test send_newsletter sends emails to users """ # emails count count = 0 for i in range(int(math.ceil(self.total_users * 1.0 / self.page))): # how many emails will be send page_user = User.objects.members().exclude( newsletters__newsletter__in=[self.newsletter], )[:5].count() # sends emails Newsletter.send_todays_newsletter() # check email box and compare with emails count self.assertEqual(len(mail.outbox), count + page_user) # update emails count count += page_user page_user = User.objects.members().exclude( newsletters__newsletter__in=[self.newsletter], )[:5].count() # no remaining users to send emails self.assertEqual(page_user, 0) # already sended emails self.assertEqual(len(mail.outbox), self.total_users) def test_already_sended_newsletter(self): """ Test already send_newsletter sends emails to users """ # has not been sent the newsletter total_emails_not_sended = User.objects.members().exclude( newsletters__newsletter__in=[self.newsletter], ).count() self.assertEqual(total_emails_not_sended, self.total_users) # the next bulk create implies the sending of a newsletter SentNewsletter.objects.bulk_create([ SentNewsletter(user=user, newsletter=self.newsletter) for user in self.users ]) # has been sent the newsletter total_emails_not_sended = User.objects.members().exclude( newsletters__newsletter__in=[self.newsletter], ).count() # no remaining users to send emails self.assertEqual(total_emails_not_sended, 0)