Exemplo n.º 1
0
 def _add_record(self, user, tags=[]):
     record = Record(user=user,
                     transaction_type='EXP',
                     amount=10,
                     tags=tags)
     record.save()
     return record
Exemplo n.º 2
0
Arquivo: views.py Projeto: a1fred/rtdc
def add_record(request):
    if request.method != "POST":
        raise NotImplementedError

    token = request.POST.get("token", None)
    data = request.POST.get("data", None)

    if not token:
        raise PermissionDenied

    if not data:
        raise PermissionDenied

    try:
        data = float(data)
    except ValueError:
        raise PermissionDenied

    try:
        token = CollectorToken.objects.get(token=token)
        r = Record(
            data=data,
            token=token,
        )
        r.save()
        return jsonResp(r.to_dict())
    except CollectorToken.DoesNotExist:
        raise PermissionDenied
Exemplo n.º 3
0
 def _add_record(self, amount, transaction_type='EXP', bits=[]):
     record = Record(user=self.user, transaction_type=transaction_type, amount=amount)
     for bit in bits:
         record.tags.set_bit(bit, True)
         record.save()
     record.save()
     return record
Exemplo n.º 4
0
def add(request):
    if request.is_ajax():
        text = request.POST['record']
        record = Record(text=text, author=request.user, date=now())
        record.save()
        return JsonResponse({"text": record.text, "id": record.id, "date": record.date.strftime("%d.%m.%Y %H:%M"),
                             "author_id": record.author.id, "author_name": record.author.get_full_name(),
                             "author_alias": record.author.username})
Exemplo n.º 5
0
    def _add_record(self, amount, transaction_type='EXP', tags=None):
        tags = tags or []

        record = Record(user=self.user,
                        transaction_type=transaction_type,
                        amount=amount,
                        tags=tags)
        record.save()
        return record
Exemplo n.º 6
0
def submit_record_proc(request):
    try:
        tonn_username = request.POST['tonn_username']
        nann_username = request.POST['nann_username']
        sha_username = request.POST['sha_username']
        pei_username = request.POST['pei_username']
        tonn_score = int(request.POST['tonn_score'])
        nann_score = int(request.POST['nann_score'])
        sha_score = int(request.POST['sha_score'])
        pei_score = int(request.POST['pei_score'])
        match_type = int(request.POST['match_type'])
    except:
        return HttpResponse("Invalid inputs...")

    try:
        extra_point = int(request.POST['extra_point'])
    except KeyError:
        extra_point = 0

    try:
        replay_url = request.POST['replay_url']
        if not replay_url:
            replay_url = None
    except KeyError:
        replay_url = None

    # validate point inputs
    total = tonn_score + nann_score + sha_score + pei_score + extra_point
    if total % 10000 or total % 4:
        return HttpResponse("Invalid points...")

    # create record
    record = Record(extra_point=extra_point,
                    match_type=match_type,
                    replay_url=replay_url)
    record.save()

    # get users
    tonn = get_user_from_name(tonn_username)
    nann = get_user_from_name(nann_username)
    sha = get_user_from_name(sha_username)
    pei = get_user_from_name(pei_username)

    if not tonn or not nann or not sha or not pei:
        return HttpResponse("Invalid users...")

    # create player
    tonn_player = Player(user=tonn, record=record, kaze="동", point=tonn_score)
    tonn_player.save()
    nann_player = Player(user=nann, record=record, kaze="남", point=nann_score)
    nann_player.save()
    sha_player = Player(user=sha, record=record, kaze="서", point=sha_score)
    sha_player.save()
    pei_player = Player(user=pei, record=record, kaze="북", point=pei_score)
    pei_player.save()

    return HttpResponseRedirect("/submit_record")
Exemplo n.º 7
0
def submit_record_proc(request):
    try:
        tonn_username = request.POST['tonn_username']
        nann_username = request.POST['nann_username']
        sha_username = request.POST['sha_username']
        pei_username = request.POST['pei_username']
        tonn_score = int(request.POST['tonn_score'])
        nann_score = int(request.POST['nann_score'])
        sha_score = int(request.POST['sha_score'])
        pei_score = int(request.POST['pei_score'])
        match_type = int(request.POST['match_type'])
    except:
        return HttpResponse("Invalid inputs...");

    try:
        extra_point = int(request.POST['extra_point'])
    except KeyError:
        extra_point = 0

    try:
        replay_url = request.POST['replay_url']
        if not replay_url:
            replay_url = None
    except KeyError:
        replay_url = None

    # validate point inputs
    total = tonn_score + nann_score + sha_score + pei_score + extra_point
    if total % 10000 or total % 4:
        return HttpResponse("Invalid points...");

    # create record
    record = Record(extra_point=extra_point, match_type=match_type, replay_url=replay_url)
    record.save()

    # get users
    tonn = get_user_from_name(tonn_username)
    nann = get_user_from_name(nann_username)
    sha = get_user_from_name(sha_username)
    pei = get_user_from_name(pei_username)

    if not tonn or not nann or not sha or not pei:
        return HttpResponse("Invalid users...");

    # create player
    tonn_player = Player(user=tonn, record=record, kaze="동", point=tonn_score)
    tonn_player.save()
    nann_player = Player(user=nann, record=record, kaze="남", point=nann_score)
    nann_player.save()
    sha_player = Player(user=sha, record=record, kaze="서", point=sha_score)
    sha_player.save()
    pei_player = Player(user=pei, record=record, kaze="북", point=pei_score)
    pei_player.save()

    return HttpResponseRedirect("/submit_record")
Exemplo n.º 8
0
 def test_cannot_save_duplicate_records(self):
     pack = Pack.objects.create()
     Record.objects.create(text='dup', pack=pack)
     # with self.assertRaises(ValidationError):
     # IntegrityError 错误, 而不是 ValidationError 错误
     with self.assertRaises(IntegrityError):
         dup_record = Record(text='dup', pack=pack)
         # dup_record.full_clean()
         # Django 把 unique_together 约束添加到数据库中,而不是应用层
         # 所以要测 save 方法
         dup_record.save()
Exemplo n.º 9
0
    def record_entry(self, lifter):
        cleaned_data = self.cleaned_data

        entry = Entry(**{field: cleaned_data.get(field) for field in self.entry_fields})
        record = Record(**{field: cleaned_data.get(field) for field in self.record_fields})
        record.date_completed = datetime.datetime.today()
        record.lifter = lifter
        record.save()

        entry.time_posted = datetime.datetime.now()
        entry.lifter = lifter
        entry.record = record
        entry.save()
Exemplo n.º 10
0
def homePost(request, text_id):
    github_login, twitter_login, facebook_login, google_login = get_account(
        request)
    if request.method == 'POST':
        innput = get_object_or_404(Input, pk=text_id)
        temp_accuracy = 0.0
        total = innput.happy + innput.sad + innput.stupefied + innput.angry + innput.others + 1
        if request.POST.get('expression') == "1":
            innput.happy += 1
            temp_accuracy = innput.happy / total
        elif request.POST.get('expression') == "2":
            innput.sad += 1
            temp_accuracy = innput.sad / total
        elif request.POST.get('expression') == "3":
            innput.stupefied += 1
            temp_accuracy = innput.stupefied / total
        elif request.POST.get('expression') == "4":
            innput.angry += 1
            temp_accuracy = innput.angry / total
        elif request.POST.get('expression') == "5":
            innput.others += 1
            temp_accuracy = innput.others / total
        innput.save()

        user = User.objects.get(pk=request.user.pk)
        record = Record.objects.filter(user=request.user)
        print("RECORD:::: ")
        print(record)
        if not record:
            record = Record(user=user)
            record.save()
        record = Record.objects.get(user_id=user.id)
        record.total_tags += 1
        record.total_accuracy = Decimal(
            record.total_accuracy) + Decimal(temp_accuracy)
        record.accuracy = Decimal(record.total_accuracy) / Decimal(
            record.total_tags)
        record.accuracy = Decimal(record.accuracy) * Decimal(100.0)
        record.save()

    else:
        pass
    random_text = Input.objects.order_by('?')[0]
    return render(
        request, 'index.html', {
            'texts': random_text,
            'github_login': github_login,
            'twitter_login': twitter_login,
            'facebook_login': facebook_login,
            'google_login': google_login
        })
Exemplo n.º 11
0
 def test_06_include_budget_with_records(self):
     budget = Budget(
         user=self.user,
         amount=100,
         tags_type='INCL',
         start_date=datetime.date(2016, 7, 1),
     )
     budget.tags = ['books']
     budget.save()
     # add record
     record = Record(user=self.user, transaction_type='EXP', amount='10')
     record.tags = ['books', 'cafe']
     record.save()
     self.assertEqual(budget.spent, 10)
     self.assertEqual(budget.left, 90)
     self.assertEqual(budget.left_average_per_day, Decimal('4.50'))
     self.assertEqual(budget.average_per_day, Decimal('3.22'))
Exemplo n.º 12
0
def record_init():
    f = open('raw_data').readlines()
    f.pop(0)
    r_list=[]
    lineno = 0
    for line in f:
        lineno += 1
        try:
            line = line.strip().split(',')
            record = Record()
            record.country = int(line[1])
            record.age = int(line[2])
            record.gender = int(line[3])
            record.education = int(line[4])
            record.suggested_priority = line[6]
            b = BitString.objects.filter(bit_string=line[5])
            if b:
                record.bit_string = b[0]
                r_list.append(record)
            if len(r_list) >= 500:
                info_logger.info('save 500')
                Record.objects.bulk_create(r_list)
                r_list=[]
        except Exception,e:
            if r_list:
                Record.objects.bulk_create(r_list)
            r_list=[]
            error_logger.error(str(lineno))
Exemplo n.º 13
0
    def test_save_record_S(self):
        """Save a S type call record"""

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'

        _srecord.save()

        self.assertEquals(Record.objects.filter(call_id=1).count(), 1)
Exemplo n.º 14
0
    def test_save_record_Not_E_or_S(self):
        """Save a X type call record
        Expect fail (NotFound exception)
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'X'
        _srecord.call_id = '1'

        self.assertRaises(ValidationError, lambda: _srecord.save())
Exemplo n.º 15
0
    def test_save_record_S(self):
        """Save a S type call record with same source and destination
        Expect fail (ValidationError exception)
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '51992657100'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'

        self.assertRaises(ValidationError, lambda: _srecord.save())
Exemplo n.º 16
0
    def record_entry(self, lifter):
        cleaned_data = self.cleaned_data

        entry = Entry(
            **{field: cleaned_data.get(field) for field in self.entry_fields}
        )
        record = Record(
            **{field: cleaned_data.get(field) for field in self.record_fields}
        )
        record.date_completed = datetime.datetime.today()
        record.lifter = lifter
        record.save()

        entry.time_posted = datetime.datetime.now()
        entry.lifter = lifter
        entry.record = record
        entry.save()
Exemplo n.º 17
0
    def _generate_record(self, user: User, source_code: str, compiler: str,
                         problem: Problem, result: Result) -> Record:
        """Generate record from problem and source code."""
        accepted_flag = all(map(lambda res: res == 0, result.results))

        record = Record(
            user=user,
            problem=problem,
            compiler=compiler,
            source_code=source_code,
            accepted_flag=accepted_flag,
            # TODO Add running time and memory cost
            # running_time = models.DurationField(editable=False)
            # memory_cost = models. ...
        )

        # Add result for per test_case
        if result.is_compilation_error():
            self._add_ce_result(record)
        else:
            self._add_results(record, result.results,
                              problem.testcase_set.all())

        return record
Exemplo n.º 18
0
    def post(self, request):
        # Iff you can't do it pretty, do it ugly. My god I am sorry.
        # https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model
        data = json.loads(request.raw_post_data)
        logging.warning("Post contains: %s" % str(data))
        record = Record(user='******')
        record.save()

        # Begin the for loop of death
        metric_type = data.keys()
        logging.warning('Keys are: %s' % metric_type)
        for m in metric_type:
            logging.warning(m)
            if m is None:
                return redirect('/')
            
            if m == 'Weight':
                logging.warning("Creating weight record")
                value = data[m]['value']
                time_measured = data[m]['time_measured']

                if all([value, time_measured]):
                    time_measured = datetime.datetime.strptime(time_measured, '%m/%d/%Y')
                    metric = WeightMeasurement(record=record,
                                               value=value,
                                               time_measured=time_measured)
                    metric.save()
                    return redirect('/')
  
            if m == 'Body Fat':
                value = data[m].get('value', None)
                time_measured = data[m].get('time_measured', None)

                if all([value, time_measured]):
                    metric = BodyFatMeasurement(record=record,
                                                value=value,
                                                time_measured=time_measured)
                    metric.save()
                    return redirect('/')

            if m == 'Body Size':
                value = data[m].get('value', None)
                time_measured = data[m].get('time_measured', None)
                body_part = data[m].get('body_part', None)
                

                if all([value, time_measured, body_part]):
                    metric = BodyFatMeasurement(record=record,
                                                value=value,
                                                body_part=body_part,
                                                time_measured=time_measured)
                    metric.save()
                    return redirect('/')
                 
            if m == 'Max Lift':
                value = data[m].get('value', None)
                time_measured = data[m].get('time_measured', None)
                lift = request.POST[m].get('lift', None) 

                if all([value, time_measured, lift]):
                    metric = MaxLiftMeasurement(record=record,
                                                value=value,
                                                lift=lift,
                                                time_measured=time_measured)
                    metric.save()
                    return redirect('/')

            if m == 'Resting Heart Rate':
                value = request.POST[m].get('value', None)
                time_measured = request.POST[m].get('time_measured', None)

                if all([value, time_measured]):
                    metric = RestingHRMeasurement(record=record,
                                                  value=value,
                                                  time_measured=time_measured)
                    metric.save()
                    return redirect('/')

            if m == 'Sleep':
                hours = request.POST[m].get('value', None)
                time_measured = request.POST[m].get('time_measured', None)
                quality = request.Post.POST[m].get('quality', None)

                if all([time_measured, hours, quality]):
                    metric = SleepMeasurement(record=record,
                                              hours=hours,
                                              quality=quality,
                                              time_measured=time_measured)
                    metric.save()
                    return redirect('/')

            else:
                return redirect('/')
Exemplo n.º 19
0
 def test_cannot_save_empty_records(self):
     pack = Pack.objects.create()
     record = Record(pack=pack, text='')
     with self.assertRaises(ValidationError):
         record.save()
         record.full_clean()
Exemplo n.º 20
0
 def test_record_is_related_to_pack(self):
     pack = Pack.objects.create()
     record = Record()
     record.pack = pack
     record.save()
     self.assertIn(record, pack.record_set.all())
Exemplo n.º 21
0
    def test_save_record_E_lower_time_S(self):
        """Save a E type call record with timestamp lower than
        the S type call origin

        Expect fail (ValidationError exception)
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'

        _srecord.save()

        _ierecord = Record()
        _ierecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T14:16:13+0000", "%Y-%m-%dT%H:%M:%S%z")
        _ierecord.call_type = 'E'
        _ierecord.call_id = '1'

        self.assertRaises(ValidationError, lambda: _ierecord.save())
        self.assertNotEquals(Record.objects.filter(call_id=1).count(), 2)
Exemplo n.º 22
0
    def test_save_record_E_without_S_origin(self):
        """Save a E type call record without a S origin
        Expect fail (NotFound exception)
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'

        _srecord.save()

        _ierecord = Record()
        _ierecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T16:16:13+0000", "%Y-%m-%dT%H:%M:%S%z")
        _ierecord.call_type = 'E'
        _ierecord.call_id = '2'

        self.assertRaises(NotFound, lambda: _ierecord.save())
        self.assertNotEquals(Record.objects.filter(call_id=1).count(), 2)
Exemplo n.º 23
0
    def setUp(self):
        self.client = APIClient()

        # Create a Bill of last month for tests
        _start_call = Record()
        _start_call.timestamp = datetime.datetime.strptime(
                                  "2018-08-26T15:07:10+0000",
                                  "%Y-%m-%dT%H:%M:%S%z")
        _start_call.source = '51992657100'
        _start_call.destination = '5133877079'
        _start_call.call_type = 'S'
        _start_call.call_id = '1'
        _start_call.save()

        _end_call = Record()
        _end_call.timestamp = datetime.datetime.strptime(
                                  "2018-08-26T15:17:10+0000",
                                  "%Y-%m-%dT%H:%M:%S%z")
        _end_call.call_type = 'E'
        _end_call.call_id = '1'
        _end_call.save()

        _start_period = _start_call.timestamp
        _end_period = _end_call.timestamp

        _bill = Bill()
        _bill.subscriber = '51992657100'
        _bill.period = last_month_string()
        _bill.save()

        _bill_record = BillRecord()
        _bill_record.bill_origin = _bill
        _bill_record.start_call = _start_call
        _bill_record.end_call = _end_call
        _bill_record.call_price = _bill.calculate_charge(
                                    _start_period, _end_period
                                  )
        _bill_record.save()        
Exemplo n.º 24
0
    def test_call_bill_period(self):
        """Save a call pair record and verify his bill period

        Should have to be the end call record date period
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-07-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'

        _srecord.save()

        _erecord = Record()
        _erecord.timestamp = datetime.datetime.strptime(
            "2018-08-01T16:16:13+0000", "%Y-%m-%dT%H:%M:%S%z")
        _erecord.call_type = 'E'
        _erecord.call_id = '1'

        _erecord.save()

        self.assertEquals(
            Bill.objects.filter(subscriber='51992657100',
                                period='082018').count(), 1)
Exemplo n.º 25
0
    def test_save_record_S_already_closed(self):
        """Save a S type call record for a already created
        S call record with same call_id
        Expect fail (ValidationError exception)
        """

        _srecord_1 = Record()
        _srecord_1.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord_1.source = '51992657100'
        _srecord_1.destination = '5133877079'
        _srecord_1.call_type = 'S'
        _srecord_1.call_id = '1'
        _srecord_1.save()

        _srecord_2 = Record()
        _srecord_2.timestamp = datetime.datetime.strptime(
            "2018-08-28T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord_2.source = '51992657100'
        _srecord_2.destination = '51994355677'
        _srecord_2.call_type = 'S'
        _srecord_2.call_id = '1'

        self.assertRaises(ValidationError, lambda: _srecord_2.save())
        self.assertNotEquals(Record.objects.filter(call_id=1).count(), 2)
Exemplo n.º 26
0
def save(request, app_id, source):
    app = App.objects.get(id=app_id)
    
    record_object = Record(campaign=app.campaign)
    if (request.POST.get('name')):
        record_object.name = request.POST.get('name')
    if (request.POST.get('lastname')):
        record_object.lastname = request.POST.get('lastname')
    if (request.POST.get('email')):
        record_object.email = request.POST.get('email')
    if (request.POST.get('id')):
        record_object.identification = request.POST.get('id')
    if (request.POST.get('cellphone')):
        record_object.cellphone = request.POST.get('cellphone')
    if (request.POST.get('year_of_birth')):
        record_object.year_of_birth = request.POST.get('year_of_birth')
    if (request.POST.get('birth_month')):
        record_object.birth_month = request.POST.get('birth_month')
    if (request.POST.get('day_of_birth')):
        record_object.day_of_birth = request.POST.get('day_of_birth')
    
    record_object.save()

    record_app = App_record(app=app, record=record_object)
    
    
    try:
        source_obj = App_source.objects.get(app=app, token=source)
    except:
        if source == 'facebook':
            source_obj = App_source(app=app, name="Facebook", token='facebook')
            source_obj.save()
        else:
            try:
                source_obj = App_source.objects.get(app=app, token='direct')
            except:
                source_obj = App_source(app=app, name="Directo", token='direct')
                source_obj.save()
        
    record_app.source = source_obj
    record_app.save()
    
    return HttpResponse(1)
Exemplo n.º 27
0
    def post(self, request):
        # 上传的文件都在request.FILES里面获取,所以这里要多传一个这个参数
        excel_form = UploadExcelForm(request.POST, request.FILES)
        next_url = request.GET.get('next', '')
        if excel_form.is_valid():
            excel_file = excel_form.cleaned_data["excel_file"]
            case_file = File()
            case_file.excel_file = excel_file
            case_file.save()

            excel_file_name = os.path.join(MEDIA_ROOT,
                                           case_file.excel_file.name)
            wb = openpyxl.load_workbook(excel_file_name)
            sheet = wb.get_active_sheet()
            for i in range(1, sheet.max_row):
                record = Record()

                record.asin = sheet.cell(row=i + 1, column=1).value
                record.c_price = sheet.cell(row=i + 1, column=2).value
                record.purchase_cost = sheet.cell(row=i + 1, column=3).value
                record.product_profit = sheet.cell(row=i + 1, column=4).value
                record.product_upload_time = sheet.cell(row=i + 1,
                                                        column=5).value
                # record.brush_number = sheet.cell(row=i + 1, column=6).value
                record.sale_30_number = sheet.cell(row=i + 1, column=6).value
                record.sale_7_number = sheet.cell(row=i + 1, column=7).value
                record.record_src = sheet.cell(row=i + 1, column=8).value
                record.now_score = sheet.cell(row=i + 1, column=9).value
                record.now_review_number = sheet.cell(row=i + 1,
                                                      column=10).value
                review_type = sheet.cell(row=i + 1, column=11).value
                record.review_type = review_type
                if review_type == "留评":
                    record.direct_review = '0'
                    record.free_review_number = '0'
                    record.feedback = '0'
                elif review_type == "直评":
                    record.review_number = '0'
                    record.free_review_number = '0'
                    record.feedback = '0'
                elif review_type == "免评":
                    record.review_number = '0'
                    record.direct_review = '0'
                    record.feedback = '0'
                elif review_type == "feedback":
                    record.review_number = '0'
                    record.direct_review = '0'
                    record.free_review_number = '0'

                record.user = request.user
                record.save()

            messages.add_message(request,
                                 messages.SUCCESS,
                                 "文件上传成功",
                                 extra_tags='success')
            return redirect(next_url)
        else:
            messages.add_message(request,
                                 messages.ERROR,
                                 "表单验证错误",
                                 extra_tags='danger')
            return redirect(next_url)
Exemplo n.º 28
0
 def test_default_text(self):
     record = Record()
     self.assertEqual(record.text, '')
Exemplo n.º 29
0
 def test_can_save_same_record_to_diffrent_pack(self):
     pack1 = Pack.objects.create()
     pack2 = Pack.objects.create()
     Record.objects.create(pack=pack1, text='dup')
     record = Record(pack=pack2, text='dup')
     record.full_clean()     # should not raise
Exemplo n.º 30
0
 def test_string_representation(self):
     record = Record(text='成长记录')
     self.assertEqual(str(record), '成长记录')
Exemplo n.º 31
0
    def test_many_subscribers_bills_in_same_month(self):

        # loop for create 40 subscribers
        _total_subs = 40
        while _total_subs > 0:
            _srecord = Record()
            _srecord.timestamp = datetime.datetime.strptime(
                "2018-07-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
            _srecord.source = '519926571%s' % str(_total_subs)
            _srecord.destination = '513387707%s' % str(_total_subs)
            _srecord.call_type = 'S'
            _srecord.call_id = _total_subs

            _srecord.save()

            _erecord = Record()
            _erecord.timestamp = datetime.datetime.strptime(
                "2018-08-01T16:16:13+0000", "%Y-%m-%dT%H:%M:%S%z")
            _erecord.call_type = 'E'
            _erecord.call_id = _total_subs

            _erecord.save()

            _total_subs = _total_subs - 1

        # loop for verify the 40 created bills
        _total_subs = 40
        while _total_subs > 0:
            self.assertEquals(
                Bill.objects.filter(subscriber='519926571%s' %
                                    str(_total_subs),
                                    period='082018').count(), 1)
            _total_subs = _total_subs - 1
Exemplo n.º 32
0
 def _add_record(self, user, tags_bits=[]):
     record = Record(user=user, transaction_type='EXP', amount=10)
     for bit in tags_bits:
         record.tags.set_bit(bit, True)
     record.save()
     return record
Exemplo n.º 33
0
    def test_bill_update(self):
        """
        Test a Bill update (new Bill record)
        """

        _start_call = Record()
        _start_call.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _start_call.source = '51992657100'
        _start_call.destination = '5133877079'
        _start_call.call_type = 'S'
        _start_call.call_id = '1'
        _start_call.save()

        _end_call = Record()
        _end_call.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:17:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _end_call.call_type = 'E'
        _end_call.call_id = '1'
        _end_call.save()

        _start_period = _start_call.timestamp
        _end_period = _end_call.timestamp

        _bill = Bill()
        _bill.subscriber = '51992657100'
        _bill.period = '072018'
        _bill.save()

        _bill_record = BillRecord()
        _bill_record.bill_origin = _bill
        _bill_record.start_call = _start_call
        _bill_record.end_call = _end_call
        _bill_record.call_price = _bill.calculate_charge(
            _start_period, _end_period)
        _bill_record.save()

        self.assertEquals(
            BillRecord.objects.filter(bill_origin=_bill).count(), 1)
Exemplo n.º 34
0
    def test_save_record_E_already_closed(self):
        """Save a E type call record for a already ended call pair
        Expect fail (ValidationError exception)
        """

        _srecord = Record()
        _srecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T15:07:10+0000", "%Y-%m-%dT%H:%M:%S%z")
        _srecord.source = '51992657100'
        _srecord.destination = '5133877079'
        _srecord.call_type = 'S'
        _srecord.call_id = '1'
        _srecord.save()

        _ierecord = Record()
        _ierecord.timestamp = datetime.datetime.strptime(
            "2018-08-26T16:16:13+0000", "%Y-%m-%dT%H:%M:%S%z")
        _ierecord.call_type = 'E'
        _ierecord.call_id = '1'
        _ierecord.save()

        _ierecord_2 = Record()
        _ierecord_2.timestamp = datetime.datetime.strptime(
            "2018-08-26T16:26:13+0000", "%Y-%m-%dT%H:%M:%S%z")
        _ierecord_2.call_type = 'E'
        _ierecord_2.call_id = '1'

        self.assertRaises(ValidationError, lambda: _ierecord_2.save())
        self.assertNotEquals(Record.objects.filter(call_id=1).count(), 3)
Exemplo n.º 35
0
def addrecord_android(request):
    if request.method == 'POST':
#         form = RecordForm(request.POST)
#         if form.is_valid():
            reqJson = simplejson.loads(request.raw_post_data)
            record = Record()
            record.user = request.user
            record.companyname_cn = reqJson['companyname_cn']
            record.city = reqJson['city']
            record.post = reqJson['post']
#             record.date = reqJson['date']
#             record.time = reqJson['time']
            record.date_time = reqJson['dateTime']
            record.location = reqJson['location']
            record.state = reqJson['state']
            record.orig_record_id = reqJson['orig_record_id']
#             record.post = reqJson['post']
            try:
                record.save()
                
            except Exception,e:
                print str(e)
                return HttpResponse(str(e))
            else:
                return HttpResponse("added")