Example #1
0
def create():
    """Create all charts as cache"""

    # support vars
    different_tastes = list()
    count = 0
    size = 0

    # get whiskies
    whiskies = Whisky.query.all()
    for whisky in whiskies:
        tastes = whisky.get_tastes()
        if tastes not in different_tastes:
            different_tastes.append(tastes)
    total = len(different_tastes) * (len(different_tastes) - 1.0)

    # combination
    for reference in different_tastes:
        for whisky in different_tastes:
            if whisky != reference:
                chart = Chart(reference=reference, comparison=whisky)
                file_name = chart.cache_name(True)
                if file_name.exists():
                    file_name.remove()
                chart.cache()
                size += file_name.size()
                count += 1
                print("%s Created %s (%s)" % (
                    percent(count / total),
                    file_name.absolute(),
                    file_size(file_name.size()),
                ))
    print("%s charts created (%s)" % (count, file_size(size)))
Example #2
0
 def test_cache_name(self):
     whisky_1, whisky_2 = self.test_suite.get_whiskies()
     chart = Chart(reference=whisky_1, comparison=whisky_2)
     cache_dir_path = chart.cache_path()
     cache_file_path = chart.cache_name(True)
     cache_name = chart.cache_name()
     self.assertEqual(cache_name, "110113221101x111113210202.svg")
     self.assertEqual(cache_file_path, cache_dir_path.child(cache_name).absolute())
Example #3
0
 def test_create_and_cache(self):
     base_dir = app.config['BASEDIR']
     whisky_1, whisky_2 = self.test_suite.get_whiskies()
     chart = Chart(reference=whisky_1, comparison=whisky_2)
     contents = chart.create()
     cached = chart.cache()
     sample = base_dir.child('whiskyton', 'tests', 'chart_sample.svg')
     self.assertEqual(contents, cached.read_file())
     self.assertEqual(contents, sample.read_file())
Example #4
0
 def test_create_and_cache(self):
     base_dir = app.config["BASEDIR"]
     whisky_1, whisky_2 = self.test_suite.get_whiskies()
     chart = Chart(reference=whisky_1, comparison=whisky_2)
     contents = chart.create()
     cached = chart.cache()
     sample = base_dir.child("whiskyton", "tests", "chart_sample.svg")
     self.assertEqual(contents, cached.read_file())
     self.assertEqual(contents, sample.read_file())
Example #5
0
 def test_valid_chart(self):
     whisky_1, whisky_2 = self.test_suite.get_whiskies()
     chart = Chart(reference=whisky_1, comparison=whisky_2)
     cache_name = chart.cache_name(True)
     if cache_name.exists():
         cache_name.remove()
     svg = "{}-{}.svg".format(whisky_1.slug, whisky_2.slug)
     resp = self.app.get("/charts/{}".format(svg))
     self.assertEqual(resp.status_code, 200)
     self.assertEqual(resp.data.decode("utf-8").count("<polygon "), 6)
     self.assertEqual(resp.data.decode("utf-8").count("<text "), 12)
     self.assertEqual(resp.data.decode("utf-8").count("<g "), 4)
     self.assertEqual(resp.data.decode("utf-8").count('id="grid"'), 1)
     self.assertEqual(resp.data.decode("utf-8").count('id="label"'), 1)
     self.assertEqual(resp.data.decode("utf-8").count('id="reference"'), 1)
     self.assertEqual(resp.data.decode("utf-8").count('id="whisky"'), 1)
Example #6
0
 def test_valid_chart(self):
     whisky_1, whisky_2 = self.test_suite.get_whiskies()
     chart = Chart(reference=whisky_1, comparison=whisky_2)
     cache_name = chart.cache_name(True)
     if cache_name.exists():
         cache_name.remove()
     svg = '{}-{}.svg'.format(whisky_1.slug, whisky_2.slug)
     resp = self.app.get('/charts/{}'.format(svg))
     self.assertEqual(resp.status_code, 200)
     self.assertEqual(resp.data.count('<polygon '), 6)
     self.assertEqual(resp.data.count('<text '), 12)
     self.assertEqual(resp.data.count('<g '), 4)
     self.assertEqual(resp.data.count('id="grid"'), 1)
     self.assertEqual(resp.data.count('id="label"'), 1)
     self.assertEqual(resp.data.count('id="reference"'), 1)
     self.assertEqual(resp.data.count('id="whisky"'), 1)
Example #7
0
def create_chart(reference_slug, whisky_slug):

    # get whisky objects form db
    reference_obj = models.Whisky.query.filter_by(slug=reference_slug).first()
    whisky_obj = models.Whisky.query.filter_by(slug=whisky_slug).first()

    # error page if whisky doesn't exist
    if reference_obj is None or whisky_obj is None:
        return abort(404)

    # if file does not exists, create it
    chart = Chart(reference=reference_obj, comparison=whisky_obj)
    filename = chart.cache_name(True)
    if not filename.exists():
        chart.cache()

    # return the chart to the user
    return Response(filename.read_file(), mimetype='image/svg+xml')
Example #8
0
def create_chart(reference_slug, whisky_slug):

    # get whisky objects form db
    reference_obj = models.Whisky.query.filter_by(slug=reference_slug).first()
    whisky_obj = models.Whisky.query.filter_by(slug=whisky_slug).first()

    # error page if whisky doesn't exist
    if reference_obj is None or whisky_obj is None:
        return abort(404)

    # if file does not exists, create it
    chart = Chart(reference=reference_obj, comparison=whisky_obj)
    filename = chart.cache_name(True)
    if not filename.exists():
        chart.cache()

    # return the chart to the user
    return Response(filename.read_file(), mimetype='image/svg+xml')
Example #9
0
def cache():
    """List cached charts"""
    folder_path = (Chart()).cache_path()
    if not folder_path.exists():
        folder_path.mkdir()
    folder = folder_path.listdir()
    count = 0
    size = 0
    for f in folder:
        if f.isfile():
            print("%s (%s)" % (f.absolute(), file_size(f.size())))
            count += 1
            size += f.size()
    print("%s cached files (%s)" % (count, file_size(size)))
Example #10
0
def create():
    """Create all charts as cache"""

    # support vars
    different_tastes = list()
    count = 0
    size = 0

    # get whiskies
    whiskies = Whisky.query.all()
    for whisky in whiskies:
        tastes = whisky.get_tastes()
        if tastes not in different_tastes:
            different_tastes.append(tastes)
    total = len(different_tastes) * (len(different_tastes) - 1.0)

    # combination
    for reference in different_tastes:
        for whisky in different_tastes:
            if whisky != reference:
                chart = Chart(reference=reference, comparison=whisky)
                file_name = chart.cache_name(True)
                if file_name.exists():
                    file_name.remove()
                chart.cache()
                size += file_name.size()
                count += 1
                print(
                    "%s Created %s (%s)"
                    % (
                        percent(count / total),
                        file_name.absolute(),
                        file_size(file_name.size()),
                    )
                )
    print("%s charts created (%s)" % (count, file_size(size)))
Example #11
0
def delete():
    """Delete all cached charts"""
    folder_path = (Chart()).cache_path()
    if not folder_path.exists():
        folder_path.mkdir()
    folder = folder_path.listdir()
    count = 0
    size = 0
    total = float(len(folder))
    for f in folder:
        print("%s Deleting %s (%s)" % (percent(
            (count / total)), f.absolute(), file_size(f.size())))
        if f.isfile():
            count += 1
            size += f.size()
            f.remove()
    print("%s cached charts deleted (%s)" % (count, file_size(size)))
Example #12
0
 def test_cache_path(self):
     base_dir = app.config['BASEDIR']
     cache_path = base_dir.child('whiskyton', 'static', 'charts')
     chart = Chart()
     self.assertEqual(str(cache_path), chart.cache_path())
Example #13
0
# coding: utf-8
Example #14
0
 def test_cache_path(self):
     base_dir = app.config["BASEDIR"]
     cache_path = base_dir.child("whiskyton", "static", "charts")
     chart = Chart()
     self.assertEqual(str(cache_path), chart.cache_path())
Example #15
0
 def test_cache_path(self):
     base_dir = app.config['BASEDIR']
     cache_path = base_dir.child('whiskyton', 'static', 'charts')
     chart = Chart()
     self.assertEqual(str(cache_path), chart.cache_path())
Example #16
0
# coding: utf-8