def testTariffLoad(self): """docstring for billing core""" from currency.money import Money #from currency.models import Currency #from django.contrib.sites.models import RequestSite from django.contrib.sites.models import Site f = open( os.path.join(os.path.dirname(__file__), 'fixtures', 'tariff_test.csv'), "rt") #tf = TariffPlan.objects.get(enabled=True, primary=True) save_cnt = 0 tariff = 1 site = 1 format_csv = 1 fixture_count = 0 object_count = 0 try: cd = CsvData( "delimiter=';'time_format='%d.%m.%Y'country_code|operator_type|name|pref_digits|price|rate|currency|weeks|time_start|time_end|date_start|time_round|code" ) reader = csv.reader(f, delimiter=';', dialect='excel') tf = TariffPlan.objects.get(pk=tariff, enabled=True, site__pk=site) s = Site.objects.get(pk=site) for row in reader: try: country_list, country_code, n = cd.parse(row) log.debug("country_code {0} ({1})".format( country_code, country_list)) for country in country_list: n['country_code'] = country_code digits = country price = n['price'] log.debug("digits {0}".format(country)) if n['weeks'] is not None: if n['weeks'] == "all": n['week'] = 0 objects_in_fixture = Tariff.objects.add_tariff( tf, n, country, price) object_count += objects_in_fixture else: for i in eval(n['weeks']): n['week'] = int(i) objects_in_fixture = Tariff.objects.add_tariff( tf, n, country, price) object_count += objects_in_fixture except Exception, e: log.error("line: {0} => {1}".format(cd.line_num, e)) pass label_found = True
def testTariffLoad(self): """docstring for billing core""" from currency.money import Money #from currency.models import Currency #from django.contrib.sites.models import RequestSite from django.contrib.sites.models import Site f = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'tariff_test.csv'), "rt") #tf = TariffPlan.objects.get(enabled=True, primary=True) save_cnt = 0 tariff=1 site = 1 format_csv = 1 fixture_count = 0 object_count = 0 try: cd = CsvData("delimiter=';'time_format='%d.%m.%Y'country_code|operator_type|name|pref_digits|price|rate|currency|weeks|time_start|time_end|date_start|time_round|code") reader = csv.reader(f, delimiter=';', dialect='excel') tf = TariffPlan.objects.get(pk=tariff, enabled=True, site__pk=site) s = Site.objects.get(pk=site) for row in reader: try: country_list, country_code, n = cd.parse(row) log.debug("country_code {0} ({1})".format(country_code, country_list)) for country in country_list: n['country_code'] = country_code digits = country price = n['price'] log.debug("digits {0}".format(country)) if n['weeks'] is not None: if n['weeks'] == "all": n['week'] = 0 objects_in_fixture = Tariff.objects.add_tariff(tf, n, country, price) object_count += objects_in_fixture else: for i in eval(n['weeks']): n['week'] = int(i) objects_in_fixture = Tariff.objects.add_tariff(tf, n, country, price) object_count += objects_in_fixture except Exception, e: log.error("line: {0} => {1}".format(cd.line_num, e)) pass label_found = True
def setUp(self): # Every test needs a client. self.client = Client() self.auth_string = 'Basic {0:>s}'.format(base64.encodestring('alice:swordfish').rstrip()) self.auth_string_error = 'Basic {0:>s}'.format(base64.encodestring('alice:alice').rstrip()) self.site = Site.objects.get_current() self.user = User.objects.create_user('test', '*****@*****.**', 'test') try: #f = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'test_all.csv'), "rt") f = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'test_prepaid.csv'), "rt") save_cnt = 0 cd = CsvData("delimiter=';'time_format='%d.%m.%Y'num_prepaid|code|rate|nt|zeros|date_end") reader = csv.reader(f, delimiter=';', dialect='excel') for row in reader: try: n = cd.parse(row) objects_in_fixture = Prepaid.objects.add_prepaid(n) except Exception, e: l.error("line: {0} => {1}".format(cd.line_num, e)) #objects_in_fixture = Prepaid.objects.load_prepaid(c, site, f) label_found = True
def handle(self, fixture_labels, **options): from django.db.models import get_apps from django.core import serializers from django.db import connection, transaction from django.conf import settings from fsb.tariff.models import TariffPlan, Tariff from django.contrib.sites.models import RequestSite from django.contrib.sites.models import Site tariff = options.get('tariff',1) site = options.get('site',1) format_csv = options.get('format_csv',1) self.style = no_style() verbosity = int(options.get('verbosity', 1)) show_traceback = options.get('traceback', False) # commit is a stealth option - it isn't really useful as # a command line option, but it can be useful when invoking # loaddata from within another script. # If commit=True, loaddata will use its own transaction; # if commit=False, the data load SQL will become part of # the transaction in place when loaddata was invoked. commit = options.get('commit', True) # Keep a count of the installed objects and fixtures fixture_count = 0 object_count = 0 models = set() humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path' # Get a cursor (even though we don't need one yet). This has # the side effect of initializing the test database (if # it isn't already initialized). cursor = connection.cursor() if commit: transaction.commit_unless_managed() transaction.enter_transaction_management() transaction.managed(True) class SingleZipReader(zipfile.ZipFile): def __init__(self, *args, **kwargs): zipfile.ZipFile.__init__(self, *args, **kwargs) if settings.DEBUG: assert len(self.namelist()) == 1, "Zip-compressed fixtures must contain only one file." def read(self): return zipfile.ZipFile.read(self, self.namelist()[0]) compression_types = { None: file, 'gz': gzip.GzipFile, 'zip': SingleZipReader } if has_bz2: compression_types['bz2'] = bz2.BZ2File f = open(fixture_labels, "rt") try: tf = TariffPlan.objects.get(pk=tariff, enabled=True, site__pk=site) s = Site.objects.get(pk=site) #d1="delimiter=';'time_format='%d.%m.%Y 00:00'name|country_code|special_digits|rate" csb = CsvBase.objects.get(pk=format_csv) cd = CsvData(csb.val) log.debug(fixture_labels) reader = csv.reader(f, delimiter=';', dialect='excel') for row in reader: try: #log.debug('row: {0}'.format(row)) country_list, country_code, n = cd.parse(row) log.debug("country_code {0} ({1})".format(country_code, country_list)) for country in country_list: n['country_code'] = country_code digits = country price = n['price'] log.debug("digits {0}".format(country)) if n['weeks'] is not None: if n['weeks'] == "all": n['week'] = 0 objects_in_fixture = Tariff.objects.add_tariff(tf, n, country, price) object_count += objects_in_fixture else: for i in eval(n['weeks']): n['week'] = int(i) objects_in_fixture = Tariff.objects.add_tariff(tf, n, country, price) object_count += objects_in_fixture except Exception, e: log.error("line: {0} => {1}".format(cd.line_num, e)) pass label_found = True
def testLoadCSV(self): """docstring for testLoadCSV""" try: from fsa.lcr.models import Lcr from fsa.gateway.models import SofiaGateway # from currency.money import Money # from currency.models import Currency from django.contrib.sites.models import RequestSite from django.contrib.sites.models import Site # f = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'test_all.csv'), "rt") f = open(os.path.join(os.path.dirname(__file__), "fixtures", "lcr_test.csv"), "rt") gw = 3 site = 1 gateway = SofiaGateway.objects.get(pk=gw, enabled=True) s = Site.objects.get(pk=site) save_cnt = 0 # default_currency = 'GRN' # curency_grn = '8.11' # All # cd = CsvData("delimiter=';'time_format='%d.%m.%Y 00:00'country_code|name|other|pref_digits|rate|currency|brand") # Ukraina # cd = CsvData("delimiter=';'time_format='%d.%m.%Y 00:00'country_code|name|digits|rate|brand|currency") # Russian cd = CsvData( "delimiter=';'time_format='%d.%m.%Y 00:00'country_code|name|digits|price|rate|currency|weeks|time_start|time_end" ) # delimiter=';'time_format='%d.%m.%Y 00:00'name|country_code|special_digits|rate # fw = open(os.path.join(os.path.dirname(__file__), 'fixtures', 'test_result.csv'), "wt") # writer = csv.writer(fw, delimiter=',', dialect='excel') # Abill price # writer.writerow(('countrycode', 'pattern', 'name', 'weight', 'connectcharge', 'includedseconds', 'minimumprice', 'price', 'brand')) # Abill route # writer.writerow(('countrycode', 'routename', 'pattern', 'costplan', 'connectcharge', 'includedseconds', 'billincrement', 'minimumcost', 'cost', 'trunk')) reader = csv.reader(f, delimiter=";", dialect="excel") for row in reader: try: # l.debug(row) country_list, country_code, n = cd.parse(row) l.debug(country_code) for country in country_list: n["country_code"] = country_code digits = n["digits"] # price = Money(n['price'], n['currency']) price = Money(n["price"], "USD") # price = n['price'] objects_in_fixture = Lcr.objects.add_lcr(gateway, n, digits, price, s) save_cnt += objects_in_fixture # l.debug(price) # l.debug(n["time_start"]) # , n["name"], price ) # route # writer.writerow((country_code, n["name"], country, 0, Decimal('0.0000'), Decimal('0.0000'), 1, Decimal('0.0000'), price, n['brand'])) except Exception, e: l.error("line: %i => %s" % (cd.line_num, e)) pass self.assertEquals(save_cnt, 3) res = Lcr.objects.get(digits="38039") self.assertEquals(res.country_code, 380) self.assertEquals(res.time_start, datetime.time(0, 10)) self.assertEquals(res.time_end, datetime.time(23, 54)) self.assertEquals(res.rate, Decimal("0.804")) self.assertEquals(res.price, Decimal("0.67")) cur = Currency.objects.get_default() self.assertEquals(cur.currency.iso3_code, "USD") exc = Currency.objects.get_currency("EUR") self.assertEquals(exc.exchange_rate, Decimal("1.39"))
def handle(self, fixture_labels, **options): from django.db.models import get_apps from django.core import serializers from django.db import connection, transaction from django.conf import settings from fsb.prepaid.models import Prepaid format_csv = options.get('format_csv', '') self.style = no_style() verbosity = int(options.get('verbosity', 1)) show_traceback = options.get('traceback', False) # commit is a stealth option - it isn't really useful as # a command line option, but it can be useful when invoking # loaddata from within another script. # If commit=True, loaddata will use its own transaction; # if commit=False, the data load SQL will become part of # the transaction in place when loaddata was invoked. commit = options.get('commit', True) # Keep a count of the installed objects and fixtures fixture_count = 0 object_count = 0 models = set() humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path' # Get a cursor (even though we don't need one yet). This has # the side effect of initializing the test database (if # it isn't already initialized). cursor = connection.cursor() if commit: transaction.commit_unless_managed() transaction.enter_transaction_management() transaction.managed(True) class SingleZipReader(zipfile.ZipFile): def __init__(self, *args, **kwargs): zipfile.ZipFile.__init__(self, *args, **kwargs) if settings.DEBUG: assert len( self.namelist() ) == 1, "Zip-compressed fixtures must contain only one file." def read(self): return zipfile.ZipFile.read(self, self.namelist()[0]) compression_types = { None: file, 'gz': gzip.GzipFile, 'zip': SingleZipReader } if has_bz2: compression_types['bz2'] = bz2.BZ2File #cd = CsvData(CsvBase.objects.get(pk=format_csv)) try: csb = CsvBase.objects.get(pk=format_csv) cd = CsvData(csb.val) log.debug(fixture_labels) f = open(fixture_labels, "rt") reader = csv.reader(f, delimiter=';', dialect='excel') for row in reader: try: n = cd.parse(row) objects_in_fixture = Prepaid.objects.add_prepaid(n) log.debug("line: {0} => {1}".format(cd.line_num, row)) except Exception, e: log.error("line: {0} => {1}".format(cd.line_num, e)) pass label_found = True
def handle(self, fixture_labels, **options): from django.db.models import get_apps from django.core import serializers from django.db import connection, transaction from django.conf import settings from fsb.prepaid.models import Prepaid format_csv = options.get('format_csv','') self.style = no_style() verbosity = int(options.get('verbosity', 1)) show_traceback = options.get('traceback', False) # commit is a stealth option - it isn't really useful as # a command line option, but it can be useful when invoking # loaddata from within another script. # If commit=True, loaddata will use its own transaction; # if commit=False, the data load SQL will become part of # the transaction in place when loaddata was invoked. commit = options.get('commit', True) # Keep a count of the installed objects and fixtures fixture_count = 0 object_count = 0 models = set() humanize = lambda dirname: dirname and "'%s'" % dirname or 'absolute path' # Get a cursor (even though we don't need one yet). This has # the side effect of initializing the test database (if # it isn't already initialized). cursor = connection.cursor() if commit: transaction.commit_unless_managed() transaction.enter_transaction_management() transaction.managed(True) class SingleZipReader(zipfile.ZipFile): def __init__(self, *args, **kwargs): zipfile.ZipFile.__init__(self, *args, **kwargs) if settings.DEBUG: assert len(self.namelist()) == 1, "Zip-compressed fixtures must contain only one file." def read(self): return zipfile.ZipFile.read(self, self.namelist()[0]) compression_types = { None: file, 'gz': gzip.GzipFile, 'zip': SingleZipReader } if has_bz2: compression_types['bz2'] = bz2.BZ2File #cd = CsvData(CsvBase.objects.get(pk=format_csv)) try: csb = CsvBase.objects.get(pk=format_csv) cd = CsvData(csb.val) log.debug(fixture_labels) f = open(fixture_labels, "rt") reader = csv.reader(f, delimiter=';', dialect='excel') for row in reader: try: n = cd.parse(row) objects_in_fixture = Prepaid.objects.add_prepaid(n) log.debug("line: {0} => {1}".format(cd.line_num, row)) except Exception, e: log.error("line: {0} => {1}".format(cd.line_num, e)) pass label_found = True