def _test_Sql_filterIndustriaLealdade3(): try: filters = data_Sql filters[0]['filtros']['lealdadeProduto'] = 3 index_info = data_Sql_filterIndustriaIndexInfo obj = GetFilter('INDUSTRIA').get(filters[0]) ret = obj.get_sql_filters(index_info).replace('\n', '').strip() ret = ' '.join(ret.split()).lower() assert ret == ' '.join( data_Sql_filterIndustria_lealdade3_response.split()).lower( ), 'SQL command wasnt built properly' execute_query(ret) except Exception as e: assert False, repr(e)
def _test_Sql_filterIndustriaLealdade1(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 6 modalidade = data_Sql_filterIndustriaIModalidade obj = GetFilter('INDUSTRIA').get(filters[0]) ret = obj.get_sql_filters(modalidade).replace('\n', '').strip() ret = ' '.join(ret.split()).lower() assert ret == ' '.join( data_Sql_filterIndustria_lealdade1_response.split()).lower( ), 'SQL command wasnt built properly' execute_query(ret) except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade20_grupo(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['tipotarget'] = 'GRUPO' filters[0]['modalidade']['grupo'] = '015' filters[0]['modalidade']['subcategoria'] = '01' filters[0]['modalidade']['categoria'] = '114' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '0000' filters[0]['modalidade']['vendor_code'] = '0000000002433' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [2, 3, 4, 5], "lealdadeProduto": 20, "sensibilidadePreco": "0", "operador": "AND" } filters[0]['regioes'] = ['SP'] obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 708 conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade7_plu1072870(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['produto'] = ['1072870'] filters[0]['modalidade']['subgrupo'] = '004' filters[0]['modalidade']['grupo'] = '565' filters[0]['modalidade']['subcategoria'] = '01' filters[0]['modalidade']['categoria'] = '101' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '0303' filters[0]['modalidade']['vendor_code'] = '0000000059021' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [1, 2, 3, 4, 5, 6], "lealdadeProduto": 7, "sensibilidadePreco": "0", "operador": "AND" } filters[0]['regioes'] = [ 'BA', 'CE', 'GO', 'MG', 'MS', 'PB', 'PE', 'PI', 'PR', 'RJ', 'SE' ] obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 17 conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade6_plu1072613(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 6 filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['produto'] = ['1072613'] filters[0]['modalidade']['subgrupo'] = '001' filters[0]['modalidade']['grupo'] = '600' filters[0]['modalidade']['subcategoria'] = '08' filters[0]['modalidade']['categoria'] = '101' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '0049' filters[0]['modalidade']['vendor_code'] = '0000000007394' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [1, 2, 3, 4, 5, 6], "lealdadeProduto": 6, "sensibilidadePreco": "0", "operador": "AND" } filters[0]['regioes'] = None obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 54 conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade5_UN(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 5 filters[0]['filtros']['un'] = [{ "codigo": "01011403034002", "descricao": "SHAMPOO BASICO" }, { "codigo": "01011403040", "descricao": "HIDRATACAO CABELO" }] filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() assert ret == ' '.join( data_Sql_filterIndustria_lealdade5_un_response.split()).lower( ), 'SQL command wasnt built properly' execute_query_temp(ret, conn) conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustria_dna_Lealdade20(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 20 filters[0]['filtros']['dna'] = dna filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade modalidade = filters[0]['modalidade'] vendor_class = modalidade.get('vendor_class_code') vendor_code = modalidade.get('vendor_code') index_info = data_Sql_filterIndustriaIndexInfo obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() assert ret == ' '.join( data_Sql_filterIndustria_dna_lealdade20_response.split()).lower( ), 'SQL command wasnt built properly' execute_query_temp(ret, conn) conn.close() except Exception as e: assert False, repr(e)
def test_padrao(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 6 modalidade = data_Sql_filterIndustriaIModalidade obj = GetFilter('INDUSTRIA').get(filters[0]) print(obj) assert True except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade5_familia4076810(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 5 filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['produto'] = ['4076810'] filters[0]['modalidade']['familia'] = '9802' filters[0]['modalidade']['tipotarget'] = 'FAMILIA' filters[0]['modalidade']['subgrupo'] = '002' filters[0]['modalidade']['grupo'] = '504' filters[0]['modalidade']['subcategoria'] = '08' filters[0]['modalidade']['categoria'] = '101' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '5697' filters[0]['modalidade']['vendor_code'] = '0000000076905' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [1, 2, 3, 4, 5, 6], "lealdadeProduto": 5, "sensibilidadePreco": "0", "un": [{ "codigo": "01010108386", "descricao": "AGUA" }, { "codigo": "01010104592", "descricao": "VINHOS BRANCOS" }, { "codigo": "01010108503", "descricao": "CHA PRONTO" }], "operador": "OR" } filters[0]['regioes'] = ['SP'] obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 11680 conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade5_categoria(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['tipotarget'] = 'CATEGORIA' filters[0]['modalidade']['categoria'] = '101' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '7893' filters[0]['modalidade']['vendor_code'] = '123456789' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [1, 2, 3, 4, 5, 6], "lealdadeProduto": 5, "sensibilidadePreco": "0", "un": [{ "codigo": "01010101565" }, { "codigo": "01010101598" }, { "codigo": "01010101535" }], "operador": "AND" } filters[0]['regioes'] = ['SP'] obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 236 conn.close() except Exception as e: assert False, repr(e)
def test_Sql_filterIndustriaLealdade5_subgrupo(): try: filters = data_Sql_Modalidade.get('audience') filters[0]['filtros']['lealdadeProduto'] = 5 filters[0]['modalidade'] = data_Sql_filterIndustriaIModalidade filters[0]['modalidade']['tipotarget'] = 'SUB-GRUPO' filters[0]['modalidade']['subgrupo'] = '001' filters[0]['modalidade']['grupo'] = '528' filters[0]['modalidade']['subcategoria'] = '09' filters[0]['modalidade']['categoria'] = '101' filters[0]['modalidade']['departamento'] = '010' filters[0]['modalidade']['vendor_class_code'] = '5697' filters[0]['modalidade']['vendor_code'] = '159753654' filters[0]['filtros'] = { "genero": ["F", "M"], "idade": [2, 3, 4, 5], "lealdadeProduto": 5, "sensibilidadePreco": "0", "operador": "AND", "un": [{ "codigo": "01010108386", "descricao": "AGUA" }] } filters[0]['regioes'] = ['SP'] obj = GetFilter('INDUSTRIA').get(filters[0]) ret, conn = getSql_filters(obj) ret = ret.replace('\n', '').strip() ret = ' '.join(ret.split()).lower() result, conn = execute_query_temp(ret, conn) assert result[0][0] == 8954 conn.close() except Exception as e: assert False, repr(e)
def get_Data_from_db(audience_filters, modalidade, plataforma): """ Given the parameters calculates the audience and the average price. Get max units per visit and min_perc_disc Parameters: audience_filters: audience filters to take in consideration index_info: information about de product """ units_per_visit = 0 min_perc_disc = 0 #f if audience_filters['modalidade']['tipotarget'] in ('PLU', 'FAMILIA'): produtos = audience_filters['modalidade']['produto'] produto = "" if len(produtos) > 0: produto = produtos[0] else: raise Exception("Produto nao preenchido") queryprod = Queries().getProductInfo() queryprod = queryprod.format(produto) result = execute_query(queryprod) result = pd.DataFrame(result, columns=['prod_hier_l10_code']) if len(result) == 0: raise Exception( "Nao foram encontrados produtos(cubos) para esta selecao") prodinfo = str(result['prod_hier_l10_code'][0]) audience_filters['modalidade']['departamento'] = prodinfo[:3] audience_filters['modalidade']['categoria'] = prodinfo[3:6] audience_filters['modalidade']['subcategoria'] = prodinfo[6:8] audience_filters['modalidade']['grupo'] = prodinfo[8:11] audience_filters['modalidade']['subgrupo'] = prodinfo[11:14] obj = GetFilter(plataforma).get(audience_filters) productsql = obj.getSqlProductTemporaryTable() result, conn = execute_query_temp(productsql, None) # create a temp table with products and return a list with l21 # each l30 in a diferent audience table result = pd.DataFrame(result, columns=['l20_code', 'l30_code']) l20 = result['l20_code'] l30 = result['l30_code'].unique() if len(l30) == 0: raise Exception( "Nao foram encontrados produtos(cubos) para esta selecao") obj.l30 = l30 ret, level_conversion = obj.get_sql_filters() result, conn = execute_query_temp(ret.replace('\n', '').strip(), conn) avgpricequery = obj.get_average_price() resultavg, conn = execute_query_temp(avgpricequery, conn) resultavg = pd.DataFrame( resultavg, columns=['avg_prod_price_clex', 'avg_prod_price_pa']) avg_price_clex, avg_price_pa = resultavg['avg_prod_price_clex'][ 0], resultavg['avg_prod_price_pa'][0] index_info = get_index_info(conn, audience_filters.get('modalidade')) return result[0][ 0], conn, avg_price_clex, avg_price_pa, index_info, level_conversion, obj._vendor