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))
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))
def check_and_save(): if Transacao.get_by_id(clean_data["idTransaction"]): raise CheckException("This transaction already exists") conta = Conta.get_by_id(clean_data["idAccountConsum"]) if not conta: raise CheckException("Invalid account") conta_old_values = conta.to_dict() transacao = Transacao( idConta=clean_data["idAccountConsum"], idDispositivo=clean_data["idDmtConsum"], id=clean_data["idTransaction"], data=clean_data["datetime"], valor=clean_data["value"], latitude=clean_data["gpsLat"], longitude=clean_data["gpsLong"] ) transacao.ehFraude = checks.is_fraud(transacao, conta) checks.learn(transacao, conta) if conta.to_dict() != conta_old_values: conta.put() transacao.put() return transacao
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") ]
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)
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))
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)
def check_and_save(): if Transacao.get_by_id(clean_data["idTransaction"]): raise CheckException("This transaction already exists") conta = Conta.get_by_id(clean_data["idAccountConsum"]) if not conta: raise CheckException("Invalid account") conta_old_values = conta.to_dict() transacao = Transacao(idConta=clean_data["idAccountConsum"], idDispositivo=clean_data["idDmtConsum"], id=clean_data["idTransaction"], data=clean_data["datetime"], valor=clean_data["value"], latitude=clean_data["gpsLat"], longitude=clean_data["gpsLong"]) transacao.ehFraude = checks.is_fraud(transacao, conta) checks.learn(transacao, conta) if conta.to_dict() != conta_old_values: conta.put() transacao.put() return transacao
from google.appengine.ext import db import google.appengine.ext.ndb as ndb from dcf.models.transacao import Transacao from dcf.models.transacao import Conta from dcf.models.transacao import Dispositivo import dcf.models.sample import dcf.utils.remote_api as remote_api_utils 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]))