Best Python code snippet using tox_python
utils.py
Source: utils.py
...11 if item_key < key(cur):12 coll.insert(idx, item)13 return14 coll.insert(len(coll), item)15def stable_topological_sort(items, partial_order):16 """Perform topological sort.17 items is a list or iterator of items to be sorted.18 partial_order is a list or iterator of pairs. If pair (a,b) is in it, it means19 that item a should appear before item b.20 Returns a list of the items in one of the possible orders, or raises21 LoopError if partial_order contains a loop.22 This is a stable sort so the relative order of the elements are kept.23 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c')]))24 ['a', 'b', 'c', 'd']25 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c'), ('b', 'c')]))26 ['a', 'b', 'c', 'd']27 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c'), ('b', 'c'), ('d', 'c')]))28 ['a', 'b', 'd', 'c']29 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c'), ('b', 'c'), ('d', 'c'), ('d', 'a')]))30 ['b', 'd', 'a', 'c']31 >>> list(stable_topological_sort(['b', 'a', 'c', 'd'], [('a', 'c'), ('b', 'c')]))32 ['b', 'a', 'c', 'd']33 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c'), ('b', 'c'), ('b', 'a')]))34 ['b', 'a', 'c', 'd']35 >>> list(stable_topological_sort(['a', 'b', 'c', 'd'], [('a', 'c'), ('b', 'c'), ('c', 'd'), ('d', 'a')]))36 Traceback (most recent call last):37 ...38 LoopError: Loop in DAG, cannot sort39 """40 graph = {}41 for idx, item in enumerate(items):42 if item not in graph:43 graph[item] = [0, idx]44 for a,b in partial_order:45 graph[a].append(b)46 graph[b][0] += 147 roots = [(node, info[1]) for (node, info) in graph.items() if info[0] == 0]48 roots.sort(key=lambda i: i[1])49 while roots:...
test_graph.py
Source: test_graph.py
...3from tox.util.graph import stable_topological_sort4def test_topological_order_specified_only():5 graph = OrderedDict()6 graph["A"] = "B", "C"7 result = stable_topological_sort(graph)8 assert result == ["A"]9def test_topological_order():10 graph = OrderedDict()11 graph["A"] = "B", "C"12 graph["B"] = ()13 graph["C"] = ()14 result = stable_topological_sort(graph)15 assert result == ["B", "C", "A"]16def test_topological_order_cycle():17 graph = OrderedDict()18 graph["A"] = "B", "C"19 graph["B"] = ("A",)20 with pytest.raises(ValueError, match="A | B"):21 stable_topological_sort(graph)22def test_topological_complex():23 graph = OrderedDict()24 graph["A"] = "B", "C"25 graph["B"] = "C", "D"26 graph["C"] = ("D",)27 graph["D"] = ()28 result = stable_topological_sort(graph)29 assert result == ["D", "C", "B", "A"]30def test_two_sub_graph():31 graph = OrderedDict()32 graph["F"] = ()33 graph["E"] = ()34 graph["D"] = "E", "F"35 graph["A"] = "B", "C"36 graph["B"] = ()37 graph["C"] = ()38 result = stable_topological_sort(graph)39 assert result == ["F", "E", "D", "B", "C", "A"]40def test_two_sub_graph_circle():41 graph = OrderedDict()42 graph["F"] = ()43 graph["E"] = ()44 graph["D"] = "E", "F"45 graph["A"] = "B", "C"46 graph["B"] = ("A",)47 graph["C"] = ()48 with pytest.raises(ValueError, match="A | B"):...
Check out the latest blogs from LambdaTest on this topic:
I was once asked at a testing summit, “How do you manage a QA team using scrum?” After some consideration, I realized it would make a good article, so here I am. Understand that the idea behind developing software in a scrum environment is for development teams to self-organize.
The web paradigm has changed considerably over the last few years. Web 2.0, a term coined way back in 1999, was one of the pivotal moments in the history of the Internet. UGC (User Generated Content), ease of use, and interoperability for the end-users were the key pillars of Web 2.0. Consumers who were only consuming content up till now started creating different forms of content (e.g., text, audio, video, etc.).
Mobile devices and mobile applications – both are booming in the world today. The idea of having the power of a computer in your pocket is revolutionary. As per Statista, mobile accounts for more than half of the web traffic worldwide. Mobile devices (excluding tablets) contributed to 54.4 percent of global website traffic in the fourth quarter of 2021, increasing consistently over the past couple of years.
Even though several frameworks are available in the market for automation testing, Selenium is one of the most renowned open-source frameworks used by experts due to its numerous features and benefits.
JUnit is one of the most popular unit testing frameworks in the Java ecosystem. The JUnit 5 version (also known as Jupiter) contains many exciting innovations, including support for new features in Java 8 and above. However, many developers still prefer to use the JUnit 4 framework since certain features like parallel execution with JUnit 5 are still in the experimental phase.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!