Example #1
0
 def test_basic_config(self):
     config_file = "basic-config.yaml"
     pes_loader = ProgrammingChallengesStructureLoader(
         structure_filename=config_file, base_path=self.base_path)
     pes_loader.load()
     ped_objects = ProgrammingChallengeDifficulty.objects.all()
     pel_objects = ProgrammingChallengeLanguage.objects.all()
     self.assertQuerysetEqual(ped_objects,
                              ["<ProgrammingChallengeDifficulty: Level 1>"])
     self.assertQuerysetEqual(
         pel_objects, ["<ProgrammingChallengeLanguage: Language 1>"])
Example #2
0
    def test_translation(self):
        config_file = "translation.yaml"

        pes_loader = ProgrammingChallengesStructureLoader(
            structure_filename=config_file, base_path=self.base_path)
        pes_loader.load()

        translated_lang = ProgrammingChallengeLanguage.objects.get(
            slug="translated")
        self.assertSetEqual(set(["en", "de"]), set(translated_lang.languages))
        self.assertEqual("English language 1", translated_lang.name)
        with translation.override("de"):
            self.assertEqual("German language 1", translated_lang.name)

        translated_difficulty = ProgrammingChallengeDifficulty.objects.get(
            level=0)
        self.assertSetEqual(set(["en", "de"]),
                            set(translated_difficulty.languages))
        self.assertEqual("English difficulty 1", translated_difficulty.name)
        with translation.override("de"):
            self.assertEqual("German difficulty 1", translated_difficulty.name)
Example #3
0
    def test_translation_missing(self):
        config_file = "translation.yaml"

        pes_loader = ProgrammingChallengesStructureLoader(
            structure_filename=config_file, base_path=self.base_path)
        pes_loader.load()

        untranslated_lang = ProgrammingChallengeLanguage.objects.get(
            slug="untranslated")
        self.assertSetEqual(set(["en"]), set(untranslated_lang.languages))
        self.assertEqual("English language 2", untranslated_lang.name)
        # Language name SHOULD fall back to english if not given
        with translation.override("de"):
            self.assertEqual("English language 2", untranslated_lang.name)

        untranslated_difficulty = ProgrammingChallengeDifficulty.objects.get(
            level=1)
        self.assertSetEqual(set(["en"]),
                            set(untranslated_difficulty.languages))
        self.assertEqual("English difficulty 2", untranslated_difficulty.name)
        # Check name does not fall back to english for missing translation
        with translation.override("de"):
            self.assertEqual("", untranslated_difficulty.name)
Example #4
0
 def test_empty_difficulties_name(self):
     config_file = "empty-difficulties-name.yaml"
     pes_loader = ProgrammingChallengesStructureLoader(
         structure_filename=config_file, base_path=self.base_path)
     self.assertRaises(InvalidYAMLValueError, pes_loader.load)
Example #5
0
 def test_empty_languages_number(self):
     config_file = "empty-languages-number.yaml"
     pes_loader = ProgrammingChallengesStructureLoader(
         structure_filename=config_file, base_path=self.base_path)
     self.assertRaises(MissingRequiredFieldError, pes_loader.load)
Example #6
0
 def test_missing_difficulties(self):
     config_file = "missing-difficulties.yaml"
     pes_loader = ProgrammingChallengesStructureLoader(
         structure_filename=config_file, base_path=self.base_path)
     self.assertRaises(MissingRequiredFieldError, pes_loader.load)
Example #7
0
 def create_programming_challenges_structure_loader(self, **kwargs):
     """Create programming challenges structure loader."""
     return ProgrammingChallengesStructureLoader(**kwargs)
Example #8
0
 def create_programming_challenges_structure_loader(self, structure_file_path, BASE_PATH):
     """Create programming challenges structure loader."""
     return ProgrammingChallengesStructureLoader(structure_file_path, BASE_PATH)