import argparse
import csv
import json
import os
import sys

from urs.utils import Export, Global

### Function names are pretty self-explanatory, so I will not be adding comments 
### above the functions.

### Includes a total of 26 tests.

class MakeArgs():
    """
    Making dummy args to test Export.py functions.
    """

    @staticmethod
    def parser_for_testing_export():
        parser = argparse.ArgumentParser()
        parser.add_argument("--subreddit", action = "store_true")
        parser.add_argument("--basic", action = "store_true")

        return parser

class TestFix():
    """
    Testing _fix() function on line 19 in Export.py.
    """

    def test_fix(self):
        name = "/t\\e?s%t*i:n|g<c@h!a#r$ac^t&e*(r)s>}{~+`="
        fixed = "_t_e_s_t_i_n_g_c_h_a_r_ac_t_e__r_s_______"

        assert fixed == Export.NameFile()._fix(name)

class TestRCategory():
    """
    Testing _r_category() function on line 24 in Export.py.
    """

    def test_r_category_first_switch(self):
        assert Export.NameFile()._r_category(None, 0) == Global.categories[5]

    def test_r_category_second_switch(self):
        for index, category in enumerate(Global.short_cat[:5]):
            assert Export.NameFile()._r_category(category, 1) == Global.categories[index]

    def test_r_category_third_switch(self):
        for i in range(0, len(Global.categories)):
            assert Export.NameFile()._r_category(i, 2) == Global.categories[i]

class TestRGetCategory():
    """
    Testing _r_get_category() function on line 38 in Export.py.
    """
                
    def test_r_get_category_subreddit_arg_returns_zero(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        assert Export.NameFile()._r_get_category(args, "S") == 0

    def test_r_get_category_subreddit_arg_returns_one(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        assert Export.NameFile()._r_get_category(args, "C") == 1

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        assert Export.NameFile()._r_get_category(args, None) == 2

class TestGetRawNWithSubredditArgs():
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "S"
        end = "result"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        end = "result"
        each_sub = ["h", "1", None]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestGetRawNWithBasicArgs():
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 5
        end = "result"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        end = "result"
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestRFnameWithSubredditArgs():
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "S"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        each_sub = ["h", 5, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-5-results"

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-1-result"
    
class TestRFnameWithBasicArgs():
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 5
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        each_sub = ["h", 5, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-5-results"

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestUFname():
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = "test"

        assert Export.NameFile().u_fname(limit, string) == "u-test-2-results"

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = "test"

        assert Export.NameFile().u_fname(limit, string) == "u-test-1-result"

class TestCFname():
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-2-results"

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-1-result"

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-RAW"

class TestWriteCSVAndWriteJSON():
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], "test_csv_writing.csv")
        overview = {
            "this": [1, 2],
            "is": [3, 4],
            "a": [5, 6],
            "test": [7, 8]}

        Export.Export._write_csv(filename, overview)

        with open(filename, "r") as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))

        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], "test_json_writing.json")
        overview = {
            'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}
        }

        Export.Export._write_json(filename, overview)

        with open(filename, "r") as test_json:
            test_dict = json.load(test_json)

        assert test_dict == overview
        os.remove(filename)

class TestGetFilenameExtension():
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = "test"
        f_type = "csv"

        assert Export.Export._get_filename_extension(f_name, f_type) == \
            "../scrapes/%s/%s.csv" % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = "test"
        f_type = "json"

        assert Export.Export._get_filename_extension(f_name, f_type) == \
            "../scrapes/%s/%s.json" % (Global.date, f_name)

0e560581a7fa94ea74081d1931b5c8f09b4fac39
<mask token>


class TestRGetCategory:
    <mask token>
    <mask token>
    <mask token>

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        assert Export.NameFile()._r_get_category(args, None) == 2


class TestGetRawNWithSubredditArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self
        ):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(
        self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        end = 'result'
        each_sub = ['h', '1', None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestGetRawNWithBasicArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        end = 'result'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithSubredditArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithBasicArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestUFname:
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-2-results'

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-1-result'


class TestCFname:
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-2-results'

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-1-result'

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-RAW'


class TestWriteCSVAndWriteJSON:
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], 'test_csv_writing.csv')
        overview = {'this': [1, 2], 'is': [3, 4], 'a': [5, 6], 'test': [7, 8]}
        Export.Export._write_csv(filename, overview)
        with open(filename, 'r') as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))
        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], 'test_json_writing.json')
        overview = {'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}}
        Export.Export._write_json(filename, overview)
        with open(filename, 'r') as test_json:
            test_dict = json.load(test_json)
        assert test_dict == overview
        os.remove(filename)


class TestGetFilenameExtension:
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = 'test'
        f_type = 'csv'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.csv' % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = 'test'
        f_type = 'json'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.json' % (Global.date, f_name)

<mask token>


class TestRGetCategory:
    <mask token>

    def test_r_get_category_subreddit_arg_returns_zero(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        assert Export.NameFile()._r_get_category(args, 'S') == 0
    <mask token>

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        assert Export.NameFile()._r_get_category(args, None) == 2


class TestGetRawNWithSubredditArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self
        ):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(
        self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        end = 'result'
        each_sub = ['h', '1', None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestGetRawNWithBasicArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        end = 'result'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithSubredditArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithBasicArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestUFname:
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-2-results'

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-1-result'


class TestCFname:
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-2-results'

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-1-result'

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-RAW'


class TestWriteCSVAndWriteJSON:
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], 'test_csv_writing.csv')
        overview = {'this': [1, 2], 'is': [3, 4], 'a': [5, 6], 'test': [7, 8]}
        Export.Export._write_csv(filename, overview)
        with open(filename, 'r') as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))
        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], 'test_json_writing.json')
        overview = {'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}}
        Export.Export._write_json(filename, overview)
        with open(filename, 'r') as test_json:
            test_dict = json.load(test_json)
        assert test_dict == overview
        os.remove(filename)


class TestGetFilenameExtension:
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = 'test'
        f_type = 'csv'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.csv' % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = 'test'
        f_type = 'json'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.json' % (Global.date, f_name)

<mask token>


class TestRGetCategory:
    """
    Testing _r_get_category() function on line 38 in Export.py.
    """

    def test_r_get_category_subreddit_arg_returns_zero(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        assert Export.NameFile()._r_get_category(args, 'S') == 0

    def test_r_get_category_subreddit_arg_returns_one(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        assert Export.NameFile()._r_get_category(args, 'C') == 1

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        assert Export.NameFile()._r_get_category(args, None) == 2


class TestGetRawNWithSubredditArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self
        ):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(
        self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        end = 'result'
        each_sub = ['h', '1', None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestGetRawNWithBasicArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        end = 'result'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithSubredditArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithBasicArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestUFname:
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-2-results'

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-1-result'


class TestCFname:
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-2-results'

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-1-result'

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-RAW'


class TestWriteCSVAndWriteJSON:
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], 'test_csv_writing.csv')
        overview = {'this': [1, 2], 'is': [3, 4], 'a': [5, 6], 'test': [7, 8]}
        Export.Export._write_csv(filename, overview)
        with open(filename, 'r') as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))
        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], 'test_json_writing.json')
        overview = {'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}}
        Export.Export._write_json(filename, overview)
        with open(filename, 'r') as test_json:
            test_dict = json.load(test_json)
        assert test_dict == overview
        os.remove(filename)


class TestGetFilenameExtension:
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = 'test'
        f_type = 'csv'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.csv' % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = 'test'
        f_type = 'json'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.json' % (Global.date, f_name)

<mask token>


class TestRCategory:
    <mask token>

    def test_r_category_first_switch(self):
        assert Export.NameFile()._r_category(None, 0) == Global.categories[5]

    def test_r_category_second_switch(self):
        for index, category in enumerate(Global.short_cat[:5]):
            assert Export.NameFile()._r_category(category, 1
                ) == Global.categories[index]
    <mask token>


class TestRGetCategory:
    """
    Testing _r_get_category() function on line 38 in Export.py.
    """

    def test_r_get_category_subreddit_arg_returns_zero(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        assert Export.NameFile()._r_get_category(args, 'S') == 0

    def test_r_get_category_subreddit_arg_returns_one(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        assert Export.NameFile()._r_get_category(args, 'C') == 1

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        assert Export.NameFile()._r_get_category(args, None) == 2


class TestGetRawNWithSubredditArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self
        ):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(
        self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        end = 'result'
        each_sub = ['h', '1', None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestGetRawNWithBasicArgs:
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        end = 'result'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        end = 'result'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithSubredditArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'S'
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--subreddit'])
        cat_i = 'H'
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestRFnameWithBasicArgs:
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 5
        each_sub = ['s', 'test', 'all']
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 5, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-5-results'

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(['--basic'])
        cat_i = 0
        each_sub = ['h', 1, None]
        sub = 'askreddit'
        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub
            ) == 'r-askreddit-Hot-1-result'


class TestUFname:
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-2-results'

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().u_fname(limit, string) == 'u-test-1-result'


class TestCFname:
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-2-results'

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-1-result'

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = 'test'
        assert Export.NameFile().c_fname(limit, string) == 'c-test-RAW'


class TestWriteCSVAndWriteJSON:
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], 'test_csv_writing.csv')
        overview = {'this': [1, 2], 'is': [3, 4], 'a': [5, 6], 'test': [7, 8]}
        Export.Export._write_csv(filename, overview)
        with open(filename, 'r') as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))
        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], 'test_json_writing.json')
        overview = {'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}}
        Export.Export._write_json(filename, overview)
        with open(filename, 'r') as test_json:
            test_dict = json.load(test_json)
        assert test_dict == overview
        os.remove(filename)


class TestGetFilenameExtension:
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = 'test'
        f_type = 'csv'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.csv' % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = 'test'
        f_type = 'json'
        assert Export.Export._get_filename_extension(f_name, f_type
            ) == '../scrapes/%s/%s.json' % (Global.date, f_name)

import argparse
import csv
import json
import os
import sys

from urs.utils import Export, Global

### Function names are pretty self-explanatory, so I will not be adding comments 
### above the functions.

### Includes a total of 26 tests.

class MakeArgs():
    """
    Making dummy args to test Export.py functions.
    """

    @staticmethod
    def parser_for_testing_export():
        parser = argparse.ArgumentParser()
        parser.add_argument("--subreddit", action = "store_true")
        parser.add_argument("--basic", action = "store_true")

        return parser

class TestFix():
    """
    Testing _fix() function on line 19 in Export.py.
    """

    def test_fix(self):
        name = "/t\\e?s%t*i:n|g<c@h!a#r$ac^t&e*(r)s>}{~+`="
        fixed = "_t_e_s_t_i_n_g_c_h_a_r_ac_t_e__r_s_______"

        assert fixed == Export.NameFile()._fix(name)

class TestRCategory():
    """
    Testing _r_category() function on line 24 in Export.py.
    """

    def test_r_category_first_switch(self):
        assert Export.NameFile()._r_category(None, 0) == Global.categories[5]

    def test_r_category_second_switch(self):
        for index, category in enumerate(Global.short_cat[:5]):
            assert Export.NameFile()._r_category(category, 1) == Global.categories[index]

    def test_r_category_third_switch(self):
        for i in range(0, len(Global.categories)):
            assert Export.NameFile()._r_category(i, 2) == Global.categories[i]

class TestRGetCategory():
    """
    Testing _r_get_category() function on line 38 in Export.py.
    """
                
    def test_r_get_category_subreddit_arg_returns_zero(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        assert Export.NameFile()._r_get_category(args, "S") == 0

    def test_r_get_category_subreddit_arg_returns_one(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        assert Export.NameFile()._r_get_category(args, "C") == 1

    def test_r_get_category_basic_arg_returns_two(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        assert Export.NameFile()._r_get_category(args, None) == 2

class TestGetRawNWithSubredditArgs():
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Subreddit args.
    """

    def test_get_raw_n_returns_search_filename_format_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "S"
        end = "result"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        end = "result"
        each_sub = ["h", "1", None]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestGetRawNWithBasicArgs():
    """
    Testing _get_raw_n() function on line 47 in Export.py.
    Testing with Basic args.
    """

    def test_get_raw_n_returns_search_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 5
        end = "result"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_get_raw_n_returns_category_filename_format_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        end = "result"
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile()._get_raw_n(args, cat_i, end, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestRFnameWithSubredditArgs():
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Subreddit args.
    """

    def test_r_fname_ignores_end_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "S"
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        each_sub = ["h", 5, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-5-results"

    def test_r_fname_returns_non_plural_string_with_subreddit_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--subreddit"])
        cat_i = "H"
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-1-result"
    
class TestRFnameWithBasicArgs():
    """
    Testing r_fname() function on line 57 in Export.py.
    Testing with Basic args.
    """

    def test_r_fname_ignores_end_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 5
        each_sub = ["s", "test", "all"]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Search-'test'"

    def test_r_fname_returns_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        each_sub = ["h", 5, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-5-results"

    def test_r_fname_returns_non_plural_string_with_basic_args(self):
        args = MakeArgs.parser_for_testing_export().parse_args(["--basic"])
        cat_i = 0
        each_sub = ["h", 1, None]
        sub = "askreddit"

        assert Export.NameFile().r_fname(args, cat_i, each_sub, sub) == \
            "r-askreddit-Hot-1-result"

class TestUFname():
    """
    Testing u_fname() function on line 68 in Export.py.
    """

    def test_u_fname_returns_plural_string(self):
        limit = 2
        string = "test"

        assert Export.NameFile().u_fname(limit, string) == "u-test-2-results"

    def test_u_fname_returns_non_plural_string(self):
        limit = 1
        string = "test"

        assert Export.NameFile().u_fname(limit, string) == "u-test-1-result"

class TestCFname():
    """
    Testing c_fname() function on line 74 in Export.py.
    """

    def test_c_fname_returns_plural_string(self):
        limit = 2
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-2-results"

    def test_c_fname_returns_non_plural_string(self):
        limit = 1
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-1-result"

    def test_c_fname_returns_raw_string(self):
        limit = 0
        string = "test"

        assert Export.NameFile().c_fname(limit, string) == "c-test-RAW"

class TestWriteCSVAndWriteJSON():
    """
    Testing _write_csv() function on line 90 and _write_json() function on line 
    98 in Export.py.
    """

    def test_write_csv(self):
        filename = os.path.join(sys.path[0], "test_csv_writing.csv")
        overview = {
            "this": [1, 2],
            "is": [3, 4],
            "a": [5, 6],
            "test": [7, 8]}

        Export.Export._write_csv(filename, overview)

        with open(filename, "r") as test_csv:
            reader = csv.reader(test_csv)
            test_dict = dict((header, []) for header in next(reader))
            for row in reader:
                for row_index, key in enumerate(test_dict.keys()):
                    test_dict[key].append(int(row[row_index]))

        assert test_dict == overview
        os.remove(filename)

    def test_write_json(self):
        filename = os.path.join(sys.path[0], "test_json_writing.json")
        overview = {
            'test_1': {'this': 1, 'is': 1, 'a': 1, 'test': 1},
            'test_2': {'this': 2, 'is': 2, 'a': 2, 'test': 2}
        }

        Export.Export._write_json(filename, overview)

        with open(filename, "r") as test_json:
            test_dict = json.load(test_json)

        assert test_dict == overview
        os.remove(filename)

class TestGetFilenameExtension():
    """
    Test _get_filename_extension() function on line 104 in Export.py.
    """

    def test_get_filename_extension_returns_csv(self):
        f_name = "test"
        f_type = "csv"

        assert Export.Export._get_filename_extension(f_name, f_type) == \
            "../scrapes/%s/%s.csv" % (Global.date, f_name)

    def test_get_filename_extension_returns_json(self):
        f_name = "test"
        f_type = "json"

        assert Export.Export._get_filename_extension(f_name, f_type) == \
            "../scrapes/%s/%s.json" % (Global.date, f_name)
