def handle(self, *args, **options): if len(args) == 0: raise CommandError( "Usage: python manage.py fix_smslog_recipient_doc_type <domain1 domain2 ...>" ) for domain in args: print "*** Processing Domain %s ***" % domain user_cache = {} for msg in SMSLog.by_domain_asc(domain).all(): if msg.couch_recipient: if msg.couch_recipient_doc_type != "CommCareCase": user = None if msg.couch_recipient in user_cache: user = user_cache[msg.couch_recipient] else: try: user = CouchUser.get_by_user_id( msg.couch_recipient) except Exception: user = None if user is None: print "Could not find user %s" % msg.couch_recipient user_cache[msg.couch_recipient] = user if user and msg.couch_recipient_doc_type != user.doc_type: msg.couch_recipient_doc_type = user.doc_type msg.save() else: if msg.couch_recipient_doc_type is not None or msg.couch_recipient is not None: msg.couch_recipient = None msg.couch_recipient_doc_type = None msg.save()
def handle(self, *args, **options): if len(args) == 0: raise CommandError("Usage: python manage.py fix_smslog_recipient_doc_type <domain1 domain2 ...>") for domain in args: print "*** Processing Domain %s ***" % domain user_cache = {} for msg in SMSLog.by_domain_asc(domain).all(): if msg.couch_recipient: if msg.couch_recipient_doc_type != "CommCareCase": user = None if msg.couch_recipient in user_cache: user = user_cache[msg.couch_recipient] else: try: user = CouchUser.get_by_user_id(msg.couch_recipient) except Exception: user = None if user is None: print "Could not find user %s" % msg.couch_recipient user_cache[msg.couch_recipient] = user if user and msg.couch_recipient_doc_type != user.doc_type: msg.couch_recipient_doc_type = user.doc_type msg.save() else: if msg.couch_recipient_doc_type is not None or msg.couch_recipient is not None: msg.couch_recipient = None msg.couch_recipient_doc_type = None msg.save()
def tearDown(self): SmsBillable.objects.all().delete() SmsGatewayFee.objects.all().delete() SmsGatewayFeeCriteria.objects.all().delete() SmsUsageFee.objects.all().delete() SmsUsageFeeCriteria.objects.all().delete() self.currency_usd.delete() for log in SMSLog.by_domain_asc(generator.TEST_DOMAIN): log.delete()
def tearDown(self): SmsBillable.objects.all().delete() SmsGatewayFee.objects.all().delete() SmsGatewayFeeCriteria.objects.all().delete() SmsUsageFee.objects.all().delete() SmsUsageFeeCriteria.objects.all().delete() self.currency_usd.delete() self.other_currency.delete() for log in SMSLog.by_domain_asc(generator.TEST_DOMAIN): log.delete() for backend_instance in self.backend_ids.values(): SMSBackend.get(backend_instance).delete()
def setUp(self): self.domain = 'mockdomain' all_logs = SMSLog.by_domain_asc(self.domain).all() for log in all_logs: log.delete() self.user = '******' self.password = '******' self.number = 5555551234 self.couch_user = WebUser.create(self.domain, self.user, self.password) self.couch_user.add_phone_number(self.number) self.couch_user.save() self.dcs = '8' self.message_ascii = 'It Works' self.message_utf_hex = '0939093F0928094D092609400020091509300924093E00200939094800200907093800200938092E092F00200915093E092E002009390948003F'
def tearDown(self): SmsBillable.objects.all().delete() SmsGatewayFee.objects.all().delete() SmsGatewayFeeCriteria.objects.all().delete() SmsUsageFee.objects.all().delete() SmsUsageFeeCriteria.objects.all().delete() self.currency_usd.delete() self.other_currency.delete() SMSLog.get_db().delete_docs( SMSLog.by_domain_asc(generator.TEST_DOMAIN).all()) SMSBackend.get_db().delete_docs(SMSBackend.get_db().all_docs( keys=self.backend_ids.values(), include_docs=True).all())
def tearDown(self): SmsBillable.objects.all().delete() SmsGatewayFee.objects.all().delete() SmsGatewayFeeCriteria.objects.all().delete() SmsUsageFee.objects.all().delete() SmsUsageFeeCriteria.objects.all().delete() self.currency_usd.delete() self.other_currency.delete() SMSLog.get_db().delete_docs( SMSLog.by_domain_asc(generator.TEST_DOMAIN).all() ) for api_id, backend_id in self.backend_ids.iteritems(): SQLMobileBackend.load(backend_id, is_couch_id=True).delete()
def setUp(self): self.domain = "biyeun" self.domain_obj = Domain() self.domain_obj.name = self.domain self.domain_obj.commtrack_enabled = True self.domain_obj.save() # delete any existing test SMS logs all_logs = SMSLog.by_domain_asc(self.domain).all() for log in all_logs: log.delete() # delete any existing billable items all_billables = SMSBillable.by_domain(self.domain) for billable in all_billables: billable.delete() self.usd_rate = BillableCurrency.get_existing_or_new_by_code("USD") self.usd_rate.conversion = 1.000 self.usd_rate.source = "static" self.usd_rate.last_updated = datetime.datetime.utcnow() self.usd_rate.save() self.eur_rate = BillableCurrency.get_existing_or_new_by_code("EUR") self.eur_rate.conversion = 1.800 self.eur_rate.source = "static" self.eur_rate.last_updated = datetime.datetime.utcnow() self.eur_rate.save() self.dimagi_surcharge = DimagiDomainSMSRate() self.dimagi_surcharge.domain = self.domain self.dimagi_surcharge.direction = OUTGOING self.dimagi_surcharge.base_fee = 0.002 self.dimagi_surcharge.currency_code = self.dimagi_surcharge._admin_crud_class.currency_code self.dimagi_surcharge.last_modified = datetime.datetime.utcnow() self.dimagi_surcharge.save() self.dimagi_surcharge_I = DimagiDomainSMSRate() self.dimagi_surcharge_I.domain = self.domain self.dimagi_surcharge_I.direction = INCOMING self.dimagi_surcharge_I.base_fee = 0.001 self.dimagi_surcharge_I.currency_code = self.dimagi_surcharge._admin_crud_class.currency_code self.dimagi_surcharge_I.last_modified = datetime.datetime.utcnow() self.dimagi_surcharge_I.save() self.unicel_rate = UnicelSMSRate() self.unicel_rate.direction = OUTGOING self.unicel_rate.base_fee = 0.01 self.unicel_rate.currency_code = self.unicel_rate._admin_crud_class.currency_code self.unicel_rate.last_modified = datetime.datetime.utcnow() self.unicel_rate.save() self.unicel_incoming_rate = UnicelSMSRate() self.unicel_incoming_rate.direction = INCOMING self.unicel_incoming_rate.base_fee = 0.05 self.unicel_incoming_rate.currency_code = self.unicel_incoming_rate._admin_crud_class.currency_code self.unicel_incoming_rate.last_modified = datetime.datetime.utcnow() self.unicel_incoming_rate.save() self.tropo_rate_any = TropoSMSRate() self.tropo_rate_any.direction = OUTGOING self.tropo_rate_any.base_fee = 0.02 self.tropo_rate_any.country_code = "" self.tropo_rate_any.currency_code = self.tropo_rate_any._admin_crud_class.currency_code self.tropo_rate_any.last_modified = datetime.datetime.utcnow() self.tropo_rate_any.save() self.tropo_rate_us = TropoSMSRate() self.tropo_rate_us.direction = OUTGOING self.tropo_rate_us.base_fee = 0.01 self.tropo_rate_us.country_code = "1" self.tropo_rate_us.currency_code = self.tropo_rate_us._admin_crud_class.currency_code self.tropo_rate_us.last_modified = datetime.datetime.utcnow() self.tropo_rate_us.save() self.tropo_rate_incoming = TropoSMSRate() self.tropo_rate_incoming.direction = INCOMING self.tropo_rate_incoming.base_fee = 0.0123 self.tropo_rate_incoming.country_code = "" self.tropo_rate_incoming.currency_code = self.tropo_rate_incoming._admin_crud_class.currency_code self.tropo_rate_incoming.last_modified = datetime.datetime.utcnow() self.tropo_rate_incoming.save() # self.mach_rate = MachSMSRate() # self.mach_rate.direction = OUTGOING # self.mach_rate.base_fee = 0.005 # self.mach_rate.network_surcharge = 0.0075 # self.mach_rate.currency_code = self.mach_rate._admin_crud_class.currency_code # self.mach_rate.last_modified = datetime.datetime.utcnow() # self.mach_rate.country_code = "49" # self.mach_rate.mcc = "262" # self.mach_rate.mnc = "07" # self.mach_rate.network = "O2" # self.mach_rate.iso = "de" # self.mach_rate.country = "Germany" # self.mach_rate.save() # # # self.mach_number = MachPhoneNumber() # self.mach_number.phone_number = "+4917685675599" # self.mach_number.country = self.mach_rate.country # self.mach_number.network = self.mach_rate.network # self.mach_number.save() # FOR INCOMING UNICEL # Couch User with Verified Phone Number self.unicel_couch_user = WebUser.create(self.domain, "unicel_biyeun", "test123") self.unicel_couch_user.add_phone_number("+919971855708") self.unicel_couch_user.save() # Verified Number for Incoming Unicel Message self.vn_unicel = VerifiedNumber() self.vn_unicel.owner_id = self.unicel_couch_user.get_id self.vn_unicel.owner_doc_type = self.unicel_couch_user.__class__.__name__ self.vn_unicel.domain = self.domain self.vn_unicel.backend_id = None # This is not needed unless you use corehq.apps.sms.api.send_sms_to_verified_number self.vn_unicel.phone_number = strip_plus(clean_phone_number(self.unicel_couch_user.phone_number)) self.vn_unicel.verified = True self.vn_unicel.save() # FOR INCOMING TROPO # Couch User with Verified Phone Number self.tropo_couch_user = WebUser.create(self.domain, "tropo_biyeun", "test123") self.tropo_couch_user.add_phone_number("+4917685675599") self.tropo_couch_user.save() # Verified Phone Number for Incoming Tropo Message self.vn_tropo = VerifiedNumber() self.vn_tropo.owner_id = self.tropo_couch_user.get_id self.vn_tropo.owner_doc_type = self.tropo_couch_user.__class__.__name__ self.vn_tropo.domain = self.domain self.vn_tropo.backend_id = None # This is not needed unless you use corehq.apps.sms.api.send_sms_to_verified_number self.vn_tropo.phone_number = strip_plus(clean_phone_number(self.tropo_couch_user.phone_number)) self.vn_tropo.verified = True self.vn_tropo.save() self.test_message = "Test of CommCare HQ's SMS Tracking System." try: self.sms_config = getattr(settings, "SMS_TESTING") except AttributeError: self.sms_config = None try: self.tropo_token = getattr(settings, "TROPO_MESSAGING_TOKEN") self.tropo_backend = TropoBackend(messaging_token=self.tropo_token) except AttributeError: self.tropo_token = None self.tropo_backend = None try: unicel_config = getattr(settings, "UNICEL_CONFIG") self.unicel_backend = UnicelBackend( username=unicel_config["username"], password=unicel_config["password"], sender=unicel_config["sender"], ) except (AttributeError, KeyError): self.unicel_backend = None