Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
 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
Esempio n. 4
0
    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
Esempio n. 5
0
    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"))
Esempio n. 6
0
    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
Esempio n. 7
0
    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