def test_send_is_silenced(self): recipient = create_user('user', 'email', 'password') sender = create_user('sender', 'email', 'password') f = Message.inform_recipient inform_mock = mock.MagicMock() Message.inform_recipient = inform_mock Message.create_message(sender, recipient, 'text1') inform_mock.assert_called_once() inform_mock.reset_mock() Message.create_message(sender, recipient, 'text2') inform_mock.assert_not_called() Message.inform_recipient = f
def test_send_is_not_silenced_after_half_an_hour(self): recipient = create_user('user', 'email', 'password') sender = create_user('sender', 'email', 'password') f = Message.inform_recipient inform_mock = mock.MagicMock() Message.inform_recipient = inform_mock sent_time = timezone.now() - datetime.timedelta(minutes=31) Message.create_message(sender, recipient, 'text1', sent_time) inform_mock.assert_called_once() inform_mock.reset_mock() Message.create_message(sender, recipient, 'text2') inform_mock.assert_called_once() Message.inform_recipient = f
def test_new_message_email_new_messaging_system(self): recipient = create_user('user', 'email', 'password') sender = create_user('sender', 'email', 'password') m = Message.create_message(sender, recipient, 'text', silent=True) nme = NewMessageEmail(m) self.assertIn('https://rbe-network.org/messaging/conversation/{}'.format(m.sender.id), nme.body_html())
def send(request): recipient_id = request.POST.get('recipient_id') message_text = request.POST.get('message_text') error_message = '' try: if not message_text: error_message = 'Empty message cannot be sent!' elif len(message_text) > 1200: error_message = 'A message cannot be longer than 1200 characters!' else: recipient = User.objects.get(id=recipient_id) Message.create_message(request.user, recipient, message_text) return redirect(reverse('conversation', kwargs={'user_id': recipient.id})) except User.DoesNotExist as e: rbe_logger.warning("Had problems") error_message = "User to write to doesn't exists" except Exception as e: error_message = "Unknown error occurred - please try again later" rbe_logger.exception(e) return conversation(request, recipient_id, error_message)
def form_valid(self, form): person = form.cleaned_data['token'].person cable = form.cleaned_data['reader'].cable_system session, cost = CableSystemSession.objects.toggle_active(person=person, cable=cable) if session.person.account.balance < 0: Message.create_message( body=_("Insufficient funds to pay for use of the system"), recipients=list(User.objects.filter(is_staff=True, is_active=True)), content_object=session.person, request=self.request) if self.request.is_ajax(): data = {'person': unicode(session.person), 'cable': unicode(cable), 'active': session.active} return self.render_to_json_response(data) return self.render_on_success(person=session.person, cable=cable, active=session.active)
def test_retrieving_messages_page_works_with_read_message(self, smc): recipient = create_user('user', 'email', 'password') sender = create_user('sender', 'email', 'password') m = Message.create_message(sender, recipient, 'text', silent=True) m.status = MessageStatus.READ m.save() c = Client() c.login(username='******', password='******') response = c.get(reverse('messages')) self.assertEqual(response.status_code, 200)
def test_confirming_unread_works(self, smc): recipient = create_user('recipient', 'email', 'password') sender = create_user('sender', 'email', 'password') m = Message.create_message(sender, recipient, 'text', silent=True) self.assertEqual(m.status, MessageStatus.UNREAD) c = Client() c.login(username='******', password='******') qd = MultiValueDict({'message_ids[]': [m.id]}) response = c.post(reverse('messaging_confirm_read'), qd) self.assertEqual(response.status_code, 200) m.refresh_from_db() self.assertEqual(m.status, MessageStatus.READ)
def compose(request, recipient_user_id): rc = RequestContext(request) if request.method == 'POST': # create a form instance and populate it with data from the request: form = ComposeForm(request.POST) rc['form'] = form # check whether it's valid: if form.is_valid(): try: subject = form.cleaned_data['subject'] body = form.cleaned_data['body'] user_id = form.cleaned_data['recipient_id'] recipient = User.objects.get(id=int(user_id)) m = Message.create_message(request.user, recipient, subject, body) return HttpResponseRedirect( reverse('message', kwargs={'message_id': m.id})) except User.DoesNotExist: form.add_error(None, "Recipient doesn't exists") except Exception: form.add_error(None, "Server error. Could not send message!") rc['form'] = form else: try: user = User.objects.get(id=int(recipient_user_id)) form = ComposeForm(initial={ 'recipient_id': recipient_user_id, 'recipient_name': user.username }) rc['form'] = form except User.DoesNotExist: pass return render(request, 'messaging/compose.html', rc)
def handle(self, *args, **options): AdminMail(GoogleSession()).send('[RBE Network] Newsletter', 'Some message <br> <b>Blaaa</b>', None) # Add some messages all_profiles = User.objects.all() num_messages = 500 subjects = [u"Hey", u"whats up?", u"Something", u"Another"] bodies = [u"Soem body", u"Another body", u"1 2 3 4", u"Giraffen sind cool"] for idx in range(num_messages): u1, u2 = random.sample(all_profiles, 2) m = Message.create_message(u1, u2, random.choice(subjects), random.choice(bodies), silent=True) if random.random() > 0.9: m.status = MessageStatus.READ if random.random() > 0.9: m.status = MessageStatus.DELETED m.save()
def handle(self, *args, **options): all_profiles = User.objects.all() subjects = ["Hey", "whats up?", "Something", "Another"] bodies = ["Soem body", "Another body", "1 2 3 4", "Giraffen sind cool"] for idx in range(all_profiles.count()): u1, u2 = random.sample(all_profiles, 2) m = Message.create_message(u1, u2, random.choice(subjects), random.choice(bodies), silent=True) if random.random() > 0.9: m.status = MessageStatus.READ if random.random() > 0.9: m.status = MessageStatus.DELETED m.save()
def handle(self, *args, **options): User.objects.all().delete() usernames = list(itertools.product(['Anne', 'Robert', 'Marie', 'Tove', 'Jens', 'Ines'], ['Larson', 'Nilson', 'Weier', 'Wa', 'Halakkai', 'Czetec'])) usernames = ["{}.{}".format(e[0], e[1]) for e in usernames] usernames.append('sheepy') skill_sample_list = ['running', 'flying', 'diving', 'programming', 'dancing', 'cutting video', 'jumping', 'sking', 'eating', 'washing', 'brooming', 'walking'] sample_languages = dict(LANGUAGES).keys() for name in usernames: # Create the user user = create_user(name, '{}@heleska.de'.format(name), 'aqwsderf') # Add a location in some cases if random.random() > 0.2: long = str(random.randint(-900, 900) / 10.0) lang = str(random.randint(-1800, 1800) / 10.0) l = Location(user=user, longitude=long, latitude=lang, position_updated=datetime.datetime.today()) l.save() # Add some skills num_skills = random.randint(0, len(skill_sample_list)) for value in random.sample(skill_sample_list, num_skills): slug, created = SlugPhrase.objects.get_or_create(value=value) UserSkill(user=user, slug=slug, level=random.randint(1, 5)).save() # Add some languages num_languages = random.randint(0, len(sample_languages)) for value in random.sample(sample_languages, num_languages): LanguageSpoken(user=user, language=value).save() # Make my user superuser to access admin and so on u = User.objects.get(username='******') u.is_superuser = True u.is_staff = True u.status = True u.save() # Add some messages all_profiles = User.objects.all() num_messages = 50 bodies = ["Soem body", "Another body", "1 2 3 4", "Giraffen sind cool"] for idx in range(num_messages): u1, u2 = random.sample(all_profiles, 2) m = Message.create_message(u1, u2, random.choice(bodies), silent=True) m.sent_time = datetime.datetime.now() - datetime.timedelta(days=random.randint(0, 30), minutes=random.randint(0, 60)) m.save() if random.random() > 0.9: m.status = MessageStatus.READ if random.random() > 0.9: m.status = MessageStatus.DELETED m.save() organization_names = [ ('The Auravana Project(TAP)', 'http://www.auravana.com', ['community', 'systems', 'scientific', 'critical', 'no_money', 'open_source']), ('Buckminster Fuller Institute', 'http://www.bfi.org', ['systems', 'scientific']) ] for element in organization_names: ozt = [OrganizationTag.objects.get_or_create(value=e)[0] for e in element[2]] org = create_organization(name=element[0], website_url=element[1]) org.enabled = True for e in ozt: org.tags.add(e) org.save() self.stdout.write(self.style.SUCCESS('Successfully create a bunch of users!'))