Subversion Repositories SmartDukaan

Rev

Rev 4370 | Blame | Compare with Previous | Last modification | View Log | RSS feed

from shop2020.thriftpy.model.v1.catalog.ttypes import Item, status, Warehouse,\
    VendorItemPricing
import datetime
import os
from time import strftime
from shop2020.clients.CatalogClient import CatalogClient
from shop2020.utils.Utils import to_java_date, to_py_date
from shop2020.model.v1.catalog.impl.DataAcessors import validate_item_prices, validate_vendor_prices


inventory_client = CatalogClient()
client = inventory_client.get_client()
"""
#deals = client.getBestDeals()
#print deals

warehouse_id, items_in_inventory = client.getItemAvailabilityAtLocation(0, 132)
print warehouse_id
print items_in_inventory
"""


def test_validate():
    # Item prices should follow the following validations.
    # mrp > sellingPrice
    # mrp > mop
    # xferPrice < mop
    
    item = Item()
    item.id = 1
    item.productGroup = "Handsets"
    item.modelNumber = "MI-310"
    item.brand = "Spice"
    item.color = "Red"
    
    vip = VendorItemPricing()
    vip.vendorId = 1
    
    set_prices1(item, vip)
    set_prices2(item, vip)
    return

def set_prices1(item, vip):
    #Test Case 1 (mrp < sellingPrice)
    item.mrp = 220.50
    item.sellingPrice = 225.50
    
    vip.mop = 111
    vip.dealerPrice = 111
    vip.transferPrice = 111
    validate(item,vip)
    return

def set_prices2(item, vip):
    #Test Case 2 (mrp < mop)
    item.mrp = 230.50
    item.sellingPrice = 225.50
    
    vip.mop = 235.0
    vip.dealerPrice = 210.0
    vip.transferPrice = 200.5
    validate(item,vip)
    return


def validate(item, vip):
#    try:
#        #validate_prices(item, vip)
#    except Exception as ex:
#        print ex
#        return
#    print 'prices validated'
    return

def test_similar_item():
    print (client.checkSimilarItem('handset', 'spice', 'bldk', None))
    print (client.checkSimilarItem('handset', 'spice', 'bldk', ''))
    print (client.checkSimilarItem('handset', 'spice', 'bldk', 'Black'))

def test_change_item_status():
    #changeItemStatus method testing
    client.changeItemStatus(1, time, status.PAUSED)
    item = client.getItem(1)
    print 'item status = ' + str(item.itemStatus) + ", desc = " + item.status_description
    
    client.changeItemStatus(1, time, status.PHASED_OUT)
    item = client.getItem(1)
    print 'item status = ' + str(item.itemStatus) + ", desc = " + item.status_description

def test_check_risky_item():
    #mark_risky_item method testing. It is called from the following 3 methods.
    availability = {"battery|nokia|bl 4b|na":1}
    client.updateInventory(2, time, availability)
    #client.reserveItemInWarehouse(167, 1, 1)
    #client.reduceReservationCount(167, 2, 1)

def test_update_similarity_index():
    
    
    items=client.getSimilarItemsCatalogIds(3, 2, 1441)
    print items
    
def test_logging(item_id, risky):
    logfile = open(os.getenv("HOME")+'/'+'riskyNew.log', 'a')
    logfile.write(str(strftime("%Y-%m-%d %H:%M:%S")) + ', ItemId=' + str(item_id) + ', ' + str(risky) + '\n')

def test_get_best_deal_catalog_ids():
    print client.getBestDealsCatalogIds(0, 20, 'Nokia', -1);
    
def test_get_all_items():
    items = client.getAllItemsByStatus(status.ACTIVE)
    for item in items:
        print item.itemInventory

def test_is_alive():
    print client.isAlive()

def test_get_availability_at_location():
    print client.getItemAvailabilityAtLocation(0, 1)
    
def test_get_pending_orders_inventory():
    print client.getPendingOrdersInventory()

def testGetVendorsForWarehouse(warehouseId):
    vendors = client.getVendorsForWarehouse(warehouseId)
    for vendor in vendors:
        print vendor

def testGetWarehousesForVendor(vendorId):
    warehouses =  client.getWarehousesForVendor(vendorId)
    for warehouse in warehouses:
        print warehouse
def testVendorItemPricing(itemId, vendorId):
    print client.getItemPricing(itemId, vendorId)

def testArgs(string, floatvar):
    print string
    print floatvar

if __name__ == '__main__':
    time = to_py_date(datetime.datetime.now())
    #test_validate()
    #test_similar_item()
    #test_change_item_status()
    #test_check_risky_item()
    #test_logging(5, True)
    #test_update_similarity_index()
    #test_get_best_deal_catalog_ids()
    #test_get_all_items()
    #test_is_alive()
    #test_get_availability_at_location()
    #test_get_pending_orders_inventory()
    print client.getItemAvailabilityAtLocation(0, 9999)
    print "hello"
    #testGetWarehousesForVendor(1)
    #testGetVendorsForWarehouse(7)
    #testVendorItemPricing(5,-1)
    #string = "hello"
    #floatvar = 5.5
    #testArgs(string, floatvar)
    #testArgs(string, None)