Example #1
0
 def build_entities_to_put(self):
     return [
         Conta(nome="The Tale Guy {}".format(self.id),
               id="{}-conta-{}".format(self.PREFIX, self.id)),
         Dispositivo(id="{}-dispositivo-{}".format(self.PREFIX, self.id),
                     idConta="{}-conta-{}".format(self.PREFIX, self.id),
                     tipo="celular")
     ]
Example #2
0
def conta():
    args = flask.request.args

    if not 'conta' in args:
        return 'Conta nao disponivel'

    conta = Conta.get_by_id(args['conta'])
    dispositivos = Dispositivo.query().filter(Dispositivo.idConta == args['conta'] ).fetch()

    return render_template('conta_template.html', conta = conta, dispositivos=dispositivos)
Example #3
0
    def test_localization(self):
        contaTeste = Conta(id = self.sampleTransactionData['idConta'], nome = 'Usuario1')
        contaTeste.put()
        Dispositivo(id='2001-1', idConta = self.sampleTransactionData['idConta'], tipo = 'celular').put()
        transacao1 = self._new_transaction(45.0, 0.0, self._now, False, '2001-1')
        transacao1.put()

        self.assertTrue(localization_check.is_fraud(self._new_transaction(45.0, 1.0, self._now, False, '2001-1'), contaTeste))
        self.assertFalse(localization_check.is_fraud(self._new_transaction(45.0, 1.0, self._now + datetime.timedelta(hours=1), False, '2001-1'), contaTeste))
        self.assertTrue(localization_check.is_fraud(self._new_transaction(-45.0, -90.0, self._now + datetime.timedelta(hours=1), False, '2001-1'), contaTeste))
Example #4
0
    def test_device(self):
        contaTeste = Conta(id=self.sampleTransactionData['idConta'],
                           nome='Usuario1')
        contaTeste.put()
        Dispositivo(id='2001-1',
                    idConta=self.sampleTransactionData['idConta'],
                    tipo='celular').put()
        Dispositivo(id='2001-2',
                    idConta=self.sampleTransactionData['idConta'],
                    tipo='computador').put()

        self.assertFalse(
            device_check.is_fraud(
                self._new_transaction(100.0, False, '2001-1'), contaTeste))
        self.assertFalse(
            device_check.is_fraud(
                self._new_transaction(100.0, False, '2001-2'), contaTeste))
        self.assertTrue(
            device_check.is_fraud(
                self._new_transaction(100.0, False, 'QUALQUERCOISA'),
                contaTeste))
Example #5
0
def conta():
    args = flask.request.args

    if not 'conta' in args:
        return 'Conta nao disponivel'

    conta = Conta.get_by_id(args['conta'])
    dispositivos = Dispositivo.query().filter(
        Dispositivo.idConta == args['conta']).fetch()

    return render_template('conta_template.html',
                           conta=conta,
                           dispositivos=dispositivos)
Example #6
0
def is_fraud(transacao, conta):
	devices = Dispositivo.query(Dispositivo.idConta == transacao.idConta)
	for device in devices.iter():
		if (transacao.idDispositivo == device.id):
			return False
	return True
Example #7
0
import dcf.models.sample as sample_models

remote_api_utils.configure(sys.argv[1] if len(sys.argv) > 1 else None)

contasData = csv.reader(open('csvs/contas.csv'))
contasData.next()

for conta in contasData:
    Conta(nome=conta[0], id=conta[1]).put()

dispositivosData = csv.reader(open('csvs/dispositivos.csv'))

dispositivosData.next()

for dispositivo in dispositivosData:
    Dispositivo(id=dispositivo[0], idConta=dispositivo[1],
                tipo=dispositivo[2]).put()

transacoesData = csv.reader(open('csvs/transacoes.csv'))
transacoesData.next()
for transacao in transacoesData:
    dataTransacao = datetime.datetime(int(transacao[7]), int(transacao[6]),
                                      int(transacao[5]), int(transacao[3]),
                                      int(transacao[4]))
    if transacao[9] == "TRUE":
        ehUmaFraude = True
    else:
        ehUmaFraude = False

    Transacao(idConta=transacao[0],
              idDispositivo=transacao[1],
              id=transacao[2],